- 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.