The perfect Sun disklabel
March 30, 2006
This is how the ideal Sun disklabel could look like.
Disk /dev/sda (Sun disk label): 19 heads, 248 sectors, 7508 cylinders
Units = cylinders of 4712 * 512 bytes
Device Flag Start End Blocks Id System
/dev/sda1 u 0 7508 17688848 5 Whole disk
/dev/sda2 1 29 65968 83 Linux native
/dev/sda3 u 0 7508 17688848 5 Whole disk
/dev/sda4 30 58 65968 82 Linux swap
/dev/sda5 59 7508 17549844 83 Linux native
(Addendum February 2008: Yes, I wasted 2 megabyte for cylinder 0, but better safe!)
Explanation:
1. The first partition needs to start at cylinder 0.
This is required for OpenBoot automatic booting. (You could otherwise boot
by specifying a partition, e.g. boot disk0:c.) The
/boot fs could also start at cyl 0 iff cylinder 0 is
never touched (as is the case with ext2 and ufs) -- would not be the case
with e.g. xfs. There is no other requirement, so I just made it a dummy
partition marked as "Whole disk".
2. The boot sector needs to be ext2, ext3, romfs or ufs, because that's the only thing SILO currently supports. There is no real reason it starts at cylinder 1. (Once upon a time, x86 BIOSes could only read from the first 1024 cylinders. But since this is neither x86 nor an old BIOS, there's no argument.)
3. For compatibility reasons, I heard, the third partition should be "Whole disk".
4. The swap partition, if any, should be at the start (or near the beginning) of the disk because read speeds are higher there.
5. Finally the base filesystem.