SUNLABEL(8) System Manager's Manual SUNLABEL(8)

sunlabel
read or modify a SunOS disk label

sunlabel [-mnqs] device

sunlabel reads or modifies a SunOS disk label on device, which is used by the PROM on NetBSD/sparc hardware to find partitions to boot from. sunlabel only reads/writes the first 512 bytes of device.

The supported options are:

Ignore an incorrect magic number in the disk label.
Synthesize a new label rather than reading what is there.
Quiet mode - don't print unnecessary babble (currently this suppresses the “sunlabel>” prompt).
Ignore checksum errors when reading the label.

Note that -m is dangerous, especially when combined with -s, since it will then happily believe whatever garbage it may find in the label. When using these flags, all values should be checked carefully, both those printed by L and the partition table printed by P.

sunlabel prints a prompt “sunlabel>” and expects commands. The following commands are understood:

?
Show a short help message.
<cylno> <size>
Change partition (see below).
Print label, except for the partition table.
Print the partition table.
Quit program (error if no write since last change).
Quit program (unconditionally) [EOF also quits].
Set label in the kernel (orthogonal to W).
<name> <value>
Change a non-partition label value.
Write (possibly modified) label out.

The a through p commands will accept, for the <size> parameter, the nnn/nnn/nnn syntax used by SunOS 4.x format. (For those not familiar with this syntax, a/b/c means a cylinders + b tracks + c sectors. For example, if the disk has 16 tracks of 32 sectors, 3/4/5 means (3*16*32)+(4*32)+5=1669. This calculation always uses the nsect and ntrack values as printed by the L command; in particular, if they are zero (which they will initially be if -n is used), this syntax is not very useful. Some additional strings are accepted. For the <cylno> parameter, “end-X” (where X is a partition letter) indicates that the partition should start with the first free cylinder after partition X; “start-X” indicates that the partition should start at the same place as partition X. For the <size> parameter, “end-X” indicates that the partition should end at the same place as partition X (even if partition X ends partway through a cylinder); “start-X” indicates that the partition should end with the last cylinder before partition X; and “size-X” means that the partition's size should exactly match partition X's size.

Note that sunlabel supports 16 partitions. SunOS supports only 8. Labels written by sunlabel, when partitions i through p are all set offset=0 size=0, are identical to Sun labels. If any of the “extended” partitions are nontrivial, information about them is tucked into some otherwise unused space in the Sun label format.

The V command changes fields printed by the L command. For example, if the L command prints

ascii: ST15230N cyl 5657 alt 2 hd 19 sec 78
rpm: 0          pcyl: 0         apc: 0          obs1: 0
obs2: 0         intrlv: 1       ncyl: 5657      acyl: 0
nhead: 19       nsect: 78       obs3: 0         obs4: 0

then V ncyl 6204 would set the ncyl value to 6204, or V ascii Seagate ST15230N cyl 5657 hd 19 sec varying would set the ascii-label string to that string. sunlabel performs very few consistency checks on the values you supply, and the ones it does perform never generate errors, only warnings.

der Mouse <mouse@rodents.montreal.qc.ca>

It may be that the space in the label where the information for the extended partitions is saved is used by SunOS.

Not very many consistency checks are done on the V arguments, and those only produce warnings.

NetBSD doesn't support 16 partitions in a Sun disk label yet.

December 21, 2002 NetBSD 9.4