Annotation of researchv10dc/man/man8/worm.8, revision 1.1.1.1

1.1       root        1: .TH WORM 8 "wild"
                      2: .CT 1 sa_nonmortals
                      3: .SH NAME
                      4: worm, jukebox \- optical disk utilities
                      5: .SH SYNOPSIS
                      6: .B "worm mkfs"
                      7: [
                      8: .BI -f device
                      9: ] [
                     10: .BI -c comments
                     11: ] [
                     12: .BI -b blksz
                     13: ] [
                     14: .BI -n nblks
                     15: ] [
                     16: .BI -v newvol_id
                     17: ]
                     18: .I vol_id
                     19: .PP
                     20: .B "worm stat"
                     21: [
                     22: .BI -f device
                     23: ] [
                     24: .BI -F n
                     25: ] [
                     26: .B -v
                     27: ] [
                     28: .I vol_id
                     29: ]
                     30: .PP
                     31: .B "worm ls"
                     32: [
                     33: .BI -f device
                     34: ] [
                     35: .B -l
                     36: ] [
                     37: .I file ...
                     38: ]
                     39: .PP
                     40: .B "worm rm"
                     41: [
                     42: .BI -f device
                     43: ]
                     44: .I vol_id
                     45: [
                     46: .I file ...
                     47: ]
                     48: .PP
                     49: .B "worm mv"
                     50: [
                     51: .BI -f device
                     52: ]
                     53: .I vol_id
                     54: .I "src dest"
                     55: .PP
                     56: .B "worm write"
                     57: [
                     58: .BI -f device
                     59: ]
                     60: .I vol_id
                     61: [
                     62: .I file ...
                     63: ]
                     64: .PP
                     65: .B "worm read"
                     66: [
                     67: .BI -f device
                     68: ] [
                     69: .B -dm
                     70: ]
                     71: .I vol_id
                     72: [
                     73: .I file ...
                     74: ]
                     75: .PP
                     76: .B "worm cat"
                     77: [
                     78: .BI -f device
                     79: ]
                     80: .I vol_id
                     81: .I file
                     82: .PP
                     83: .B "worm copy"
                     84: [
                     85: .B -v
                     86: ] [
                     87: .BI -m min_free
                     88: ] [
                     89: .BI -f src_dev
                     90: ]
                     91: .I src_vol_id
                     92: .I dest_dev
                     93: .I dest_vol_id
                     94: .PP
                     95: .B "worm offline"
                     96: [
                     97: .BI -f device
                     98: ]
                     99: .PP
                    100: .B "worm btree"
                    101: [
                    102: .BI -f device
                    103: ]
                    104: .I vol_id
                    105: .PP
                    106: .B "worm dir"
                    107: [
                    108: .BI -f device
                    109: ]
                    110: .I vol_id
                    111: .PP
                    112: .B "worm tmpdir"
                    113: [
                    114: .BI -f device
                    115: ]
                    116: .I vol_id
                    117: .PP
                    118: .B "worm mount"
                    119: [
                    120: .BI -w secs
                    121: ] [
                    122: .I vol_id
                    123: ]
                    124: .PP
                    125: .B "jukebox"
                    126: [
                    127: .B -aemprsuU
                    128: ] [
                    129: .BI -w secs
                    130: ] [
                    131: .I vol_id
                    132: ]
                    133: .SH DESCRIPTION
                    134: The
                    135: .I worm
                    136: programs manipulate arbitrary files.
                    137: They are intended for use with the raw device associated
                    138: with a Write-Once Read-Many (WORM) optical disk.
                    139: The default device is
                    140: .FR /dev/worm0 .
                    141: Other devices are specified by
                    142: .BI -f device
                    143: and a device name of a single digit
                    144: .I n
                    145: is taken as an abbreviation for
                    146: .FR /dev/worm \f2n\fP.
                    147: Most of the commands implement a simple file system.
                    148: Programs just wanting a raw device should still use
                    149: .B "worm mkfs"
                    150: so that the disk is properly labeled.
                    151: The 
                    152: .IR vol_id ,
                    153: or label,
                    154: should be unique and by convention, the vol_id's
                    155: for the A and B sides of a disk should be the same string suffixed by
                    156: a lowercase
                    157: .B a
                    158: and
                    159: .B b
                    160: respectively.
                    161: .PP
                    162: .I "Worm mkfs"
                    163: labels an optical disk.
                    164: The
                    165: .I comments
                    166: field is limited to 256 chars.
                    167: It is purely descriptive and is printed by
                    168: .IR "worm stat \-v" .
                    169: The (default) blocksize is 1024 for our SONY disks.
                    170: The number of blocks on a disk can be found by
                    171: .IR ra (4)
                    172: or
                    173: .IR scsish (8);
                    174: the default size
                    175: (1,600,000 for single density, 3,250,000 for double density)
                    176: sets aside 30MB or so as a hedge against oversights.
                    177: If the disk has already been initialised, its vol_id must match
                    178: .IR vol_id .
                    179: A new vol_id can be set with
                    180: .BR -v .
                    181: .PP
                    182: .I "Worm stat"
                    183: prints out labeling information
                    184: including the amount of free space left on the disk.
                    185: Option
                    186: .I vol_id
                    187: turns off all output except exit status: zero if 
                    188: .I vol_id 
                    189: matches that of the disk,
                    190: one otherwise.
                    191: Option
                    192: .B -F
                    193: similarly exits with status zero if the disk has more than
                    194: .I n
                    195: free blocks, otherwise three.
                    196: Option
                    197: .B -v
                    198: produces more output.
                    199: .PP
                    200: .I "Worm ls"
                    201: simulates an emasculated
                    202: .IR ls (1).
                    203: .PP
                    204: .I "Worm rm"
                    205: makes the specifed files unavailable to the rest of the
                    206: .I worm
                    207: commands.
                    208: .PP
                    209: .I "Worm mv"
                    210: renames
                    211: .I src
                    212: to
                    213: .IR dest .
                    214: .PP
                    215: .I "Worm write"
                    216: copies files onto the WORM.
                    217: If no file arguments are given,
                    218: filenames are read one per line from standard input.
                    219: The total number of files and bytes is printed on standard output.
                    220: .PP
                    221: .I "Worm read"
                    222: restores files from the WORM.
                    223: If no file arguments are given,
                    224: filenames are read one per line from standard input.
                    225: Option
                    226: .B -d
                    227: causes directories to be created as needed.
                    228: Option
                    229: .B -m
                    230: restores the original modification times.
                    231: .PP
                    232: .I "Worm cat"
                    233: copies the named file from the WORM to the standard output.
                    234: .PP
                    235: .I "Worm copy"
                    236: copies files directly from one disk to another.
                    237: The names of the files to be copied are taken from standard input;
                    238: groups (separated by blank lines) will be kept together.
                    239: The names are typically generated by
                    240: .BR "worm ls" .
                    241: The
                    242: .B -v
                    243: option prints out progress and summary information.
                    244: The copy will terminate before copying a group that would leave the destination
                    245: volume with less than
                    246: .I minfree
                    247: (deafult value is 40000) blocks free.
                    248: .PP
                    249: .I "Worm offline"
                    250: makes the WORM go offline, ready for ejecting.
                    251: This command is harmless;
                    252: accessing an offline drive will cause it to spin up and go online
                    253: without operator intervention.
                    254: .I "Worm offline"
                    255: only takes effect after the last close of the WORM
                    256: and as a bonus, applies to any MSCP device such as an RA81.
                    257: .PP
                    258: .I "Worm tmpdir"
                    259: saves a copy of the directory in
                    260: .BI /usr/worm/tmp/ vol_id
                    261: if the directory
                    262: .F /usr/worm/tmp
                    263: exists.
                    264: This will speed up subsequent access substantially,
                    265: although it will still be slower than
                    266: .I "worm btree"
                    267: below.
                    268: On the other hand, 
                    269: .I worm tmpdir
                    270: typically takes 5 minutes to run (on a VAX 11/750)
                    271: whereas
                    272: .I worm btree
                    273: takes about 45 minutes.
                    274: .PP
                    275: .I "Worm btree"
                    276: constructs a new directory for the whole disk (in the form of a
                    277: .IR cbt (1)
                    278: database).
                    279: The new superblock is at zero.
                    280: All the worm commands go faster with such an index but it is intended to be done
                    281: just once, after the disk is complete.
                    282: The directory occupies of the order of 10MB but may be more.
                    283: If you really have to add more files to the disk,
                    284: you need to write zeros on the first 1K block of the WORM before using
                    285: .IR "worm write" .
                    286: .PP
                    287: .I "Worm dir"
                    288: takes the btree directory from the disk and stores in
                    289: .FR /usr/worm/dirs .
                    290: Future uses of the disk will be much faster.
                    291: .PP
                    292: .I "Worm mount"
                    293: returns the device on which the disk labelled
                    294: .I vol_id
                    295: is mounted.
                    296: If the drive(s) are busy and you have a jukebox, the
                    297: .BI -w s
                    298: option tells how many seconds to wait before failing.
                    299: The default is wait forever.
                    300: If no
                    301: .I vol_id
                    302: is given, print the drive status.
                    303: .PP
                    304: .I "Jukebox"
                    305: manages the disks in the SONY jukebox.
                    306: There are several options (default is
                    307: .BR -s ):
                    308: .TP 10
                    309: .B -a
                    310: Allocate a blank disk and label it
                    311: .IR vol_id .
                    312: Use
                    313: .I "worm mkfs"
                    314: to change any fields from their default value.
                    315: .TP
                    316: .B -e
                    317: Eject the disk labeled
                    318: .I vol_id.
                    319: To physically retrieve the disk,
                    320: press the
                    321: .B OUT
                    322: button (the
                    323: .B "OUT READY"
                    324: light should be on).
                    325: Repeat until the
                    326: .B "IN READY"
                    327: light goes on.
                    328: .TP
                    329: .B -m
                    330: Mount the disk labelled
                    331: .I vol_id
                    332: in some drive and print the drive number on standard output.
                    333: .TP
                    334: .B -p
                    335: Print the list of disks in the jukebox.
                    336: .TP
                    337: .B -r
                    338: Rebuild the list of disks by examining each disk in the jukebox.
                    339: Do not do this unless you are sure you need to.
                    340: If
                    341: .I vol_id
                    342: is given, it should be one of the following letters and governs
                    343: how disks are assigned shelf numbers.
                    344: The default is to leave the shelf number unchanged.
                    345: Other options (mainly useful for demos) are
                    346: .B c
                    347: (compresses the disks in the jukebox towards the bottom or lower numbered shelves),
                    348: .B r
                    349: (distributes the disks randomly), and
                    350: .B s
                    351: (sorts the disks by vol_id).
                    352: .TP
                    353: .B -s
                    354: Print the status of the jukebox.
                    355: .TP
                    356: .B -u
                    357: Unload offline disks back onto their shelves.
                    358: .TP
                    359: .B -U
                    360: Unload all disks (offline or not) back onto their shelves.
                    361: .TP
                    362: .BI -w secs
                    363: This option only affects the behavior of
                    364: .BR -m .
                    365: If all drives are busy, try again for
                    366: .I secs
                    367: seconds before failing.
                    368: .PP
                    369: To load a disk into the jukebox, press the
                    370: .B IN
                    371: button on the jukebox when the
                    372: .B "IN READY"
                    373: light is on.
                    374: After the shutter opens, push the disk in firmly.
                    375: The disk (blank or initialised) is not examined immediately but on demand.
                    376: .SS Etiquette
                    377: Vol_ids should be unique as discussed above.
                    378: The file
                    379: .F /n/wild/usr/worm/vol_ids
                    380: contains known vol_ids.
                    381: The commands for reading and writing require vol_id's
                    382: to guard against accessing the wrong disk.
                    383: .PP
                    384: The recommended protocol for changing disks is
                    385: if no one appears to be using the drive
                    386: (by using
                    387: .IR ps (1)),
                    388: execute
                    389: .I "worm offline"
                    390: and go to the drive.
                    391: If, and only if, the drive has the DRIVE OFF (middle) light on,
                    392: hit the EJECT button and change disks.
                    393: If the light is not on, then
                    394: someone is still using the disk and you should wait until they are done
                    395: before hitting EJECT.
                    396: .SS Programming considerations
                    397: Programs should not depend on writing any block more than once; however,
                    398: our SONY optical disks implement a small number of multiple writes
                    399: via bad block replacement.
                    400: A
                    401: .IR read (2)
                    402: of an unwritten block returns with an errno of
                    403: .BR ENXIO .
                    404: On Vaxes, the WORM is an MSCP device;
                    405: thus geometry information can be fetched as in
                    406: .IR ra (4).
                    407: .PP
                    408: For maximum speed, read and write in large blocks (preferably 63K)
                    409: and avoid seeks.
                    410: A seek across the whole disk takes about 1 second.
                    411: .PP
                    412: The device
                    413: .F /dev/worm?
                    414: is simply an appropriate raw
                    415: .IR ra (4)
                    416: device, partition 7 (the whole disk).
                    417: .SH EXAMPLES
                    418: .EX
                    419: worm mkfs -c"512x512x24 movies" tdmoviesa
                    420: worm write tdmoviesa < filenames
                    421: worm read -d tdmoviesa bumblebee/act2/frame1
                    422: .EE
                    423: .SH FILES
                    424: .F /dev/worm?
                    425: .br
                    426: .F /n/wild/usr/worm/vol_ids
                    427: .br
                    428: .F /n/wild/usr/worm/jukedir
                    429: .SH SEE ALSO
                    430: .IR backup (8),
                    431: .IR scsish (8),
                    432: .IR backup (1)
                    433: .SH BUGS
                    434: The output of
                    435: .I "worm ls"
                    436: is not necessarily sorted.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.