1 sunlabel.c is the source. It should build Just Fine on any NetBSD
2 machine; with -DDISTRIB, probably on many non-NetBSD machines - though
3 it may require a little tweaking on some. It should work on both
4 big-endian and little-endian machines; though I have not personally
5 tried it on anything but SPARC and sun3, I have heard one report that
6 it worked on NetBSD/i386, which is little-endian.
8 Usage: pass a single argument, which is the disk device or file you
9 wish to read/write the label to/from. sunlabel reads/writes only the
10 first 512 bytes of its argument. There are also some flags supported:
13 takes an argument specifying the disk device (in case
14 you want to give something beginning with a -)
16 says to ignore an incorrect magic number in the disk
19 says to ignore checksum errors when reading the label
21 says to synthesize a new label rather than reading
24 quiet mode - don't print unnecessary babble (currently
25 this suppresses the "sunlabel>" prompt).
27 Note that -fixmagic is dangerous, especially when combined with
28 -fixsum, since it will then happily believe whatever garbage it may
29 find in the label. If you use these, you should check all values
30 carefully, both the values printed by L and the partition table printed
33 sunlabel prints a prompt "sunlabel>" and expects commands. You can
34 type ? for help; as of this writing, the help is
37 L - print label, except for partition table
38 P - print partition table
39 [abcdefghijklmnop] <cylno> <size> - change partition
40 V <name> <value> - change a non-partition label value
41 W - write (possibly modified) label out
42 S - set label in the kernel (orthogonal to W)
43 Q - quit program (error if no write since last change)
44 Q! - quit program (unconditionally) [EOF also quits]
46 (If built without special precautions, the S line is present only when
49 The a through p commands will accept, for the <size> parameter, the
50 nnn/nnn/nnn syntax used by SunOS 4.x format(8). (For those not
51 familiar with this syntax, a/b/c means a cylinders + b tracks + c
52 sectors. For example, if the disk has 16 tracks of 32 sectors, 3/4/5
53 means (3*16*32)+(4*32)+5=1669. This calculation always uses the nsect
54 and ntrack values as printed by the L command; in particular, if they
55 are zero (which they will initially be if -new is used), this syntax is
56 not very useful. Some additional strings are accepted. For the
57 <cylno> parameter, "end-X" (where X is a partition letter) indicates
58 that the partition should start with the first free cylinder after
59 partition X; "start-X" indicates that the partition should start at the
60 same place as partition X. For the <size> parameter, "end-X" indicates
61 that the partition should end at the same place as partition X (even if
62 partition X ends partway through a cylinder); "start-X" indicates that
63 the partition should end with the last cylinder before partition X; and
64 "size-X" means that the partition's size should exactly match partition
67 Note that sunlabel supports 16 partitions. SunOS supports only 8.
68 Labels written by sunlabel, when partitions i through p are all set
69 offset=0 size=0, are identical to Sun labels. If any of the "extended"
70 partitions are nontrivial, information about them is tucked into some
71 otherwise unused (as far as I can tell) space in the Sun label format.
72 I don't know whether SunOS cares what's in that space; as far as I know
73 only NetBSD actually uses the extended information, and even that only
74 with my patches to do so.
76 The V command changes fields printed by the L command. For example, if
79 ascii: ST15230N cyl 5657 alt 2 hd 19 sec 78
80 rpm: 0 pcyl: 0 apc: 0 obs1: 0
81 obs2: 0 intrlv: 1 ncyl: 5657 acyl: 0
82 nhead: 19 nsect: 78 obs3: 0 obs4: 0
84 then you could type "V ncyl 6204" to set the ncyl value to 6204, or
85 "V ascii Seagate ST15230N cyl 5657 hd 19 sec varying" to set the
86 ascii-label string to that string. sunlabel performs very few
87 consistency checks on the values you supply, and the ones it does
88 perform never generate errors, only warnings; it's a YAFIYGI program.
90 I will be glad to correspond with anyone about this program. I'm...
94 mouse@rodents.montreal.qc.ca
95 7D C8 61 52 5D E7 2D 39 4E F1 31 3E E8 B3 27 4B