vol - split input on or combine output from several volumes
vol [-rw1] [-b blocksize] [-m multiple] [size] device
Vol either reads a large input stream from standard input and distributes
it over several volumes or combines volumes and sends them to standard
output. The size of the volumes is determined automatically if the
device supports this, but may be specified before the argument naming the
device if automated detection is not possible or if only part of the
physical volume is used. The direction of the data is automatically
determined by checking whether the input or output of vol is a file or
pipe. Use the -r or -w flag if you want to specify the direction
explicitly, in shell scripts for instance.
Vol waits for each new volume to be inserted, typing return makes it
continue. If no size is explicitely given then the size of the device is
determined each time before it is read or written, so it is possible to
mix floppies of different sizes. If the size cannot be determined
(probably a tape) then the device is assumed to be infinitely big. Vol
can be used both for block or character devices. It will buffer the data
and use a block size appropriate for fixed or variable block sized tapes.
Vol reads or writes 8192 bytes to block devices, usually floppies.
Character devices are read or written using a multiple of 512 bytes.
This multiple has an upper limit of 32767 bytes (16-bit machine), 64 kb
(32-bit), or even 1 Mb (32-bit VM). The last partial write to a
character device is padded with zeros to the block size. If a character
device is a tape device that responds to the mtio(4) status call then the
reported tape block size will be used as the smallest unit. If the tape
is a variable block length device then it is read or written like a block
device, 8192 bytes at the time, with a minimum unit of one byte.
All sizes may be suffixed by the letters M, k, b or w to multiply the
number by mega, kilo, block (512), or word (2). The volume size by
default in kilobytes if there is no suffix.
-rw Explicitly specify reading or writing. Almost mandatory in scripts.
-1 Just one volume, start immediately.
Specify the device block size.
Specify the maximum read or write size of multiple blocks. The -b
and -m options allow one to modify the block size assumptions that
are made above. These assumptions are -b 1 -m 8192 for block
devices or variable length tapes, and -b 512 -m 65536 for character
devices (32 bit machine.) These options will not override the tape
block size found out with an mtio(4) call. The multiple may be
larger then the default if vol can allocate the memory required.
To back up a tree to floppies as a compressed tarfile:
tar cf - . | compress | vol /dev/fd0
To restore a tree from 720 kb images from possibly bigger floppies:
vol 720 /dev/fd0 | uncompress | tar xfp -
Read or write a device with 1024 byte blocks:
vol -b 1k /dev/rsd15
Read or write a variable block length tape using blocking factor 20 as
used by default by many tar(1) commands:
vol -m 20b /dev/rst5
Note that -m was used in the last example. It sets the size to use to
read or write, -b sets the basic block size that may be written in
dd(1), tar(1), mt(1), mtio(4).