diff --git a/doc/boot_sectors.txt b/doc/boot_sectors.txt index 91df213..b74008b 100644 --- a/doc/boot_sectors.txt +++ b/doc/boot_sectors.txt @@ -11,7 +11,7 @@ This information is collected from various sources. Some is backed by specifications, some is just rumor which happens to work (maybe not even that). - Content + Content EL Torito CD booting, for PC-BIOS x86, PowerPC, (old) Mac, EFI. @@ -23,6 +23,8 @@ MIPS Volume Header, for MIPS Big Endian, e.g. SGI Indigo2. DEC Boot Block, for MIPS Little Endian , e.g. DECstation. +SUN Disk Label and boot images, for SUN SPARC + ------------------------------------------------------------------------------ @@ -648,6 +650,109 @@ Byte Range | Value | Meaning 16 - 19 | p_filesz | /* Segment size in file */ |-> seg_size | Needed for seg_size | | +---------- | ---------- | ---------------------------------------------------- + + +------------------------------------------------------------------------------ + + + SUN Disk Label and boot images + for SUN SPARC + +Sources: + cdrtools-2.01.01a77/mkisofs/sunlabel.h + cdrtools-2.01.01a77/mkisofs/mkisofs.8 + by Joerg Schilling + + +The Disk Label is written to the first 512 bytes of the image. It can mark +8 partitions (slices ) of which the first contains the ISO image. The other +7 may contain boot images. +Words are composed big-endian style. + +Boot images are provided externally. mkisofs arranges them after the end of +the ISO image so that each starts at a cylinder boundary (320 kB). + +There is a mechanism in mkisofs which fills unused partitions by copies of +their predecessor in the partition table: +"If the special filename ... is used, the actual and all following + boot partitions are mapped to the previous partition. + If mkisofs is called with -G image -B ... all boot partitions are + mapped to the partition that contains the ISO9660 filesystem." + + +Disk Label components: + +Byte Range | Value | Meaning +---------- | ---------- | ---------------------------------------------------- + 0 - 127 | label | ASCII Label + | | "CD-ROM Disc with Sun sparc boot created by ..." + | | mkisofs option -sparc-label + | | + 128 - 263 | ========== | /* vtoc inclusions from AT&T SVr4 */ + | | + 128 - 131 | 1 | Layout version + 132 - 139 | 0 | /* volume name */ + 140 - 141 | 8 | Number of partitions + | | + 142 - 173 | ========== | 8 partition entries of 4 bytes + | | + 142 - 145 | ========== | Entry for partition 1 + 142 - 143 | 4 | ID tag of partition: 4 = User partition + 144 - 145 | 0x10 | Permissions: 0x10 = read-only + | | + 146 - 149 | ========== | Entry for partition 2 + 146 - 147 | id_tag2 | ID tag of partition: + | | 0 = unused + | | 2 = Root partition with boot image + 148 - 149 | perm2 | Permissions: + | | 0 = unused + | | 0x10 = read-only (if used) + | | + 150 - 173 | ========== | Entries for partition 3 to 8. + | | See above: Entry for partition 2 + | | + 174 - 175 | 0 | Padding + | | + 176 - 187 | 0 | /* info for mboot */ + | | + 188 - 191 | 0x600ddeee | /* to verify vtoc sanity */ + | | + 192 - 231 | 0 | Reserved + | | + 232 - 263 | 0 | 8 Timestamps of yet unknown format + | | + 264 - 419 | 0 | Padding + | | + 420 - 443 | ========== | Disk properties + | | + 420 - 421 | 350 | Rotations per minute + 422 - 423 | 2048 | Number of physical cylinders (fixely 640 MB) + 424 - 425 | 0 | /* alternates per cylinder */ + 426 - 429 | 0 | /* obsolete */ + 430 - 431 | 1 | /* interleave factor */ + 432 - 433 | 2048 | Number of data cylinders (fixely 640 MB) + 434 - 435 | 0 | /* # of alternate cylinders */ + 436 - 437 | 1 | Number of heads per cylinder (i.e. 1 cyl = 320 kB) + 438 - 439 | 640 | Number of sectors per head (i.e. 1 head = 320 kB) + 440 - 443 | 0 | /* obsolete */ + | | + 444 - 507 | ========== | Partition table + | | + 444 - 451 | ========== | Partition table entry #1 + | | + 444 - 447 | start_cyl | Start cylinder + | | + 448 - 451 | num_blocks | Number of blocks in partition + | | + 452 - 507 | ========== | Partition table entries #2 to #8 + | ... | See above Partition table entry #1 + | | + 508 - 509 | 0xdabe | Magic Number + | | + 510 - 511 | checksum | The result of exoring 2-byte words 0 to 254 + | | +---------- | ---------- | ---------------------------------------------------- ------------------------------------------------------------------------------