#
129965 |
|
01-Jun-2004 |
joerg |
Major overhaul of sunlabel(8).
. Implement option -c, all partition sizes will be calculated in cylinders as opposed to sectors. Since the Sun label is inherently cylinder-based, this makes the job a little easier.
. Implement option -h, print the label in `human readable' size/offset format.
. Implement SVR4-compatible VTOC-style elements. They are fully optional, defaulting to the current behaviour where no VTOC-style table will be written to disk. However, if desired, the full functionality of the partitioning menu of Solaris' format(1m) is now offered (and even more).
. When editing the label, do not loop around edit_label() where a new template file is generated for each turn, this used to be annoying in that any possible syntax error caused a complaint, but then the template was created anew, so the user had to perform all their editing again. Rather loop inside edit_label(), similar to bsdlabel(8), so in case of errors, the user will be presented their previous template file again.
. If VTOC-style elements are present, the overlap checks are made less stringent. Overlaps will still be warned about, but overlaps of `unmountable' partitions against other ones are no longer fatal. That way, e. g. VxVM encapsulated disk labels can be fully edited in FreeBSD (but not in Solaris ;-).
. In print_label(), generate the editing hints only if the -e flag is in effect. Additionally, print a hint about the total number of sectors in the (hardware) medium.
. When editing a label, allow for changing the geometry emulation (and textual name) by modifying the "text:" line on top. That way, a more effective emulation can be chosen.
. When editing/reading a label, additionally allow for the suffixes `s' (512-byte sectors), and `c' (cylinders) in the partition size field.
. Finally, turn the stub man page into something that really explains the entire thing.
|
#
113538 |
|
15-Apr-2003 |
jake |
- Use read(2) to get the existing sunlabel on a disk, instead of parsing kern.geom.conftxt, which md disks don't show up in. If the magic and the checksum are right assume its a valid sunlabel, otherwise use the DIOC ioctls to get the disk parameters and whip up a label out of thin air. - Don't just silently create or correct invalid c partitions, warn about invalid ones in label proto files. - Split checksumming into a function since we do it a couple times. Also don't include the sl_cksum field in the checksum, which avoids needing to clear it first.
This is makes sunlabel a suitable replacement for disklabel in make release.
|