Updated description of boot sectors by sparse info about PReP, CHRP.
Described the layout for GRUB2 based hybrid images.
This commit is contained in:
parent
6a3273dc72
commit
d7401f0a4c
@ -17,9 +17,9 @@ EL Torito CD booting, for PC-BIOS x86, PowerPC, (old) Mac, EFI.
|
|||||||
|
|
||||||
Master Boot Record (MBR), for PC-BIOS x86 from (pseudo-) hard disk
|
Master Boot Record (MBR), for PC-BIOS x86 from (pseudo-) hard disk
|
||||||
|
|
||||||
Apple Partition Map (APM)
|
Apple Partition Map (APM), for more modern Mac
|
||||||
|
|
||||||
GUID Partition Table (GPT)
|
GUID Partition Table (GPT), for EFI from (pseudo-) hard disk
|
||||||
|
|
||||||
MIPS Volume Header, for MIPS Big Endian, e.g. SGI Indigo2.
|
MIPS Volume Header, for MIPS Big Endian, e.g. SGI Indigo2.
|
||||||
|
|
||||||
@ -27,10 +27,16 @@ DEC Boot Block, for MIPS Little Endian , e.g. DECstation.
|
|||||||
|
|
||||||
SUN Disk Label and boot images, for SUN SPARC
|
SUN Disk Label and boot images, for SUN SPARC
|
||||||
|
|
||||||
|
PowerPC Reference Platform (PReP), for IBM PowerPC
|
||||||
|
|
||||||
|
Common Hardware Reference Platform (CHRP), for IBM PowerPC
|
||||||
|
|
||||||
Combinations of boot mechanisms:
|
Combinations of boot mechanisms:
|
||||||
- SYSLINUX isohybrid MBR
|
- SYSLINUX isohybrid MBR
|
||||||
- SYSLINUX isohybrid for MBR, UEFI and x86 Mac
|
- SYSLINUX isohybrid for MBR, UEFI and x86 Mac
|
||||||
- GRUB2 grub-mkrescue MBR
|
- GRUB2 grub-mkrescue MBR
|
||||||
|
>>> Mac and/or PowerPC bootable GRUB2 image with HFS+/FAT, APM,
|
||||||
|
EFI GPT partition, PreP MBR partition, mountable FAT partition
|
||||||
|
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
|
|
||||||
@ -50,7 +56,13 @@ with arbitrary content. This prescription is obeyed by PC-BIOS systems only
|
|||||||
if the ISO 9660 image is presented on CD, DVD or BD media.
|
if the ISO 9660 image is presented on CD, DVD or BD media.
|
||||||
In this case the El Torito Boot record is the starting point of booting.
|
In this case the El Torito Boot record is the starting point of booting.
|
||||||
|
|
||||||
The Boot Record is a ECMA-119 Volume Descriptor which is eventually located
|
After the System Area, an ISO 9660 image usually has three distinct block
|
||||||
|
intervals for:
|
||||||
|
- Volume descriptors (Primary Volume Descriptor, Boot Record, Joliet, ...)
|
||||||
|
- Directory trees, tables, boot catalog, embedded partitions and filesystems.
|
||||||
|
- Data file content, including content of El Torito boot images.
|
||||||
|
|
||||||
|
The Boot Record is an ECMA-119 Volume Descriptor which is eventually located
|
||||||
at 2 kB block number 17 (decimal). Its content points to the location of the
|
at 2 kB block number 17 (decimal). Its content points to the location of the
|
||||||
Boot Catalog.
|
Boot Catalog.
|
||||||
The format is described in part by ECMA-119 8.2 "Boot Record" and further
|
The format is described in part by ECMA-119 8.2 "Boot Record" and further
|
||||||
@ -373,8 +385,8 @@ HFS+ filesystem.
|
|||||||
Block0 of an APM begins at byte 0 of the medium. Thus it collides with MBR and
|
Block0 of an APM begins at byte 0 of the medium. Thus it collides with MBR and
|
||||||
other boot sector formats. By lucky coincidence it is possible to compose
|
other boot sector formats. By lucky coincidence it is possible to compose
|
||||||
a mock-up of a Block0 which is acceptable to firmware which expects APM,
|
a mock-up of a Block0 which is acceptable to firmware which expects APM,
|
||||||
and is also harmless x86 machine with no negative side effects.
|
and is also harmless x86 machine code with no negative side effects.
|
||||||
So it is possible to combine APM with specially prepared MBR.
|
So it is possible to combine APM with an especially prepared MBR.
|
||||||
|
|
||||||
The layout of a Block0 of an APM is:
|
The layout of a Block0 of an APM is:
|
||||||
|
|
||||||
@ -424,6 +436,7 @@ Byte Range | Value | Meaning (all numbers are stored big endian)
|
|||||||
| | bit1= entry is allocated
|
| | bit1= entry is allocated
|
||||||
| | bit4= partition is readable
|
| | bit4= partition is readable
|
||||||
| | bit5= partition is writable
|
| | bit5= partition is writable
|
||||||
|
| | bit30= automatic mount (legacy Mac)
|
||||||
92 - 95 | boot_block | Logical start block number of boot code = 0
|
92 - 95 | boot_block | Logical start block number of boot code = 0
|
||||||
96 - 99 | boot_bytes | Number of bytes in boot code = 0
|
96 - 99 | boot_bytes | Number of bytes in boot code = 0
|
||||||
100 - 119 | | More boot code stuff = 0
|
100 - 119 | | More boot code stuff = 0
|
||||||
@ -457,11 +470,11 @@ start_block = start_of_hfs
|
|||||||
block_count = end_of_hfs - start_of_hfs
|
block_count = end_of_hfs - start_of_hfs
|
||||||
name = "HFSPLUS_Hybrid"
|
name = "HFSPLUS_Hybrid"
|
||||||
type = "Apple_HFS"
|
type = "Apple_HFS"
|
||||||
flags = 0x13
|
flags = 0x40000013
|
||||||
|
|
||||||
Entry 4 (byte 0x2000) describes the interval from the end of the HFS+
|
Entry 4 (byte 0x2000) describes the interval from the end of the HFS+
|
||||||
partition to the end of the ISO image. It is possible that this interval is
|
partition to the end of the ISO image. It is possible that this interval is
|
||||||
empty. In this case, no forth APM entry will be written.
|
empty. In this case, no fourth APM entry will be written.
|
||||||
start_block = end_of_hfs
|
start_block = end_of_hfs
|
||||||
block_count = end_of_iso - end_of_hfs
|
block_count = end_of_iso - end_of_hfs
|
||||||
name = "Gap1"
|
name = "Gap1"
|
||||||
@ -479,7 +492,7 @@ flags = 0x13
|
|||||||
|
|
||||||
GUID Partition Table (GPT)
|
GUID Partition Table (GPT)
|
||||||
for alternative mountability paths
|
for alternative mountability paths
|
||||||
and for booting of some Apple Macs from (pseudo-) hard disk
|
and for EFI booting of some Apple Macs from (pseudo-) hard disk
|
||||||
|
|
||||||
Sources:
|
Sources:
|
||||||
http://mjg59.dreamwidth.org/11285.html
|
http://mjg59.dreamwidth.org/11285.html
|
||||||
@ -536,6 +549,7 @@ A globally registered class of GUID are the partition type GUIDs.
|
|||||||
This example uses two of them
|
This example uses two of them
|
||||||
Basic data partition: a2 a0 d0 eb , e5 b9 , 33 44 , 87 c0 68 b6 b7 26 99 c7
|
Basic data partition: a2 a0 d0 eb , e5 b9 , 33 44 , 87 c0 68 b6 b7 26 99 c7
|
||||||
HFS+ partition : 00 53 46 48 , 00 00 , aa 11 , aa 11 00 30 65 43 ec ac
|
HFS+ partition : 00 53 46 48 , 00 00 , aa 11 , aa 11 00 30 65 43 ec ac
|
||||||
|
EFI System partition: 28 73 2a c1 , 1f f8 , d2 11 , ba 4b 00 a0 c9 3e c9 3b
|
||||||
Note that the wikipedia list shows the first 32-bit word and the next two
|
Note that the wikipedia list shows the first 32-bit word and the next two
|
||||||
16-bit words in little-endia interpretation.
|
16-bit words in little-endia interpretation.
|
||||||
|
|
||||||
@ -581,6 +595,11 @@ Byte Range | Value | Meaning (little endian numbers, LBA unit is 512 byte)
|
|||||||
| | Points to start of backup partition table.
|
| | Points to start of backup partition table.
|
||||||
---------- | ---------- | ----------------------------------------------------
|
---------- | ---------- | ----------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
An EFI System partition usually contains the same data blocks as the El Torito
|
||||||
|
boot image for EFI. It is used for booting some Macs from (pseudo-) hard disk.
|
||||||
|
|
||||||
|
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
@ -866,6 +885,36 @@ Byte Range | Value | Meaning
|
|||||||
---------- | ---------- | ----------------------------------------------------
|
---------- | ---------- | ----------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
PowerPC Reference Platform (PReP)
|
||||||
|
for IBM PowerPC
|
||||||
|
|
||||||
|
Sources:
|
||||||
|
Mail conversations with Vladimir Serbinenko.
|
||||||
|
|
||||||
|
|
||||||
|
PReP boots via a MBR partition containing only raw ELF and having type 0x41.
|
||||||
|
|
||||||
|
|
||||||
|
------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
Common Hardware Reference Platform (CHRP)
|
||||||
|
for IBM PowerPC
|
||||||
|
|
||||||
|
Sources:
|
||||||
|
Mail conversations with Vladimir Serbinenko.
|
||||||
|
|
||||||
|
|
||||||
|
CHRP is marked by an MBR partition entry of type 0x96 spanning the whole
|
||||||
|
ISO 9660 image.
|
||||||
|
|
||||||
|
PReP boot may be preferable. At least it can co-exist with other partitions
|
||||||
|
in the ISO image.
|
||||||
|
|
||||||
|
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
|
|
||||||
>>> ??? HP-PA
|
>>> ??? HP-PA
|
||||||
@ -1299,9 +1348,73 @@ Vladimir Serbinenko about the partition table entry:
|
|||||||
|
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
|
|
||||||
>>> Mac bootable GRUB2 image with HFS+ and APM
|
>>> Mac and/or PowerPC bootable GRUB2 image with HFS+/FAT, APM,
|
||||||
>>> ? With EFI partition ?
|
EFI GPT partition, PreP MBR partition, mountable FAT partition
|
||||||
>>> ? With PC-BIOS MBR ?
|
|
||||||
|
>>> ? With PC-BIOS MBR x86 Code ?
|
||||||
|
|
||||||
|
This storage layout was mainly defined by Vladimir Serbinenko. It relies much
|
||||||
|
on the embedded HFS+/FAT filesystem for which he provided the code to libisofs.
|
||||||
|
|
||||||
|
Start Blocks (2 KiB):
|
||||||
|
0 System Area
|
||||||
|
16 Volume Descriptors
|
||||||
|
TREE ISO-RR tree, Joliet tree, other trees and meta data, except HFS+/FAT
|
||||||
|
EFI EFI boot image partition (optional)
|
||||||
|
PREP Prep image partition (optional)
|
||||||
|
HFAT HFS+/FAT metadata (optional)
|
||||||
|
DATA Data file content (including El Torito boot images)
|
||||||
|
HFSB HFS superblock backup (if HFS+/FAT metadata)
|
||||||
|
TAIL Further tails and paddings (optional)
|
||||||
|
GPTB GPT backup (if GPT in System Area)
|
||||||
|
END End of ISO image
|
||||||
|
|
||||||
|
System Area may contain simultaneously:
|
||||||
|
MBR (x86 boot code must leave room for 8 bytes mock-up of APM Block0)
|
||||||
|
APM
|
||||||
|
GPT
|
||||||
|
|
||||||
|
MBR Partitions:
|
||||||
|
0xee from 0 to PREP-1, protective partition, announcing presence of GPT
|
||||||
|
0x41 from PREP to HFAT-1, PreP partition
|
||||||
|
0x0c from HFAT to END-1, FAT partition, bootable bit on
|
||||||
|
0x00 Empty partition
|
||||||
|
|
||||||
|
GPT Partitions:
|
||||||
|
The primary GPT itself covers the System Area.
|
||||||
|
Basic Data from 16 to EFI-1, protects first part of ISO image
|
||||||
|
EFI System from EFI to PREP-1, offers EFI image for booting
|
||||||
|
Basic Data from PREP to HFAT-1, protects PreP partition
|
||||||
|
HFS+ from HFAT to TAIL-1, offers HFS+ for mounting
|
||||||
|
Basic Data from TAIL to GPTB-1, protects rest of ISO image (if there is)
|
||||||
|
|
||||||
|
APM Partitions:
|
||||||
|
The range from end of APM to end of System Area stays unprotected.
|
||||||
|
(The primary GPT might sit there.)
|
||||||
|
Apple_partition_map from 1 to 3 or 4, covers the APM itself
|
||||||
|
ISO9660_data from 16 to HFAT-1, covers first part of ISO image
|
||||||
|
Apple_HFS from HFAT to GPTB-1, offers HFS+ for boot and mount
|
||||||
|
ISO9660_data from GPTB to END-1, covers rest of ISO image
|
||||||
|
(might be omitted if empty)
|
||||||
|
|
||||||
|
El Torito:
|
||||||
|
Boot image for 80x86 PC-BIOS
|
||||||
|
Boot image for EFI (usually the same file as the partition EFI to PREP-1).
|
||||||
|
|
||||||
|
If optional components are not present, then their addresses coincide with
|
||||||
|
the address of the next component that is present. E.g. HFAT == DATA if no
|
||||||
|
HFS+/FAT filesystem is present.
|
||||||
|
If no FAT filesystem is present within HFS+/FAT, then the type of the last
|
||||||
|
partition is 0xcd.
|
||||||
|
If neither EFI, nor PreP, nor FAT within HFS+/FAT, are present, then there
|
||||||
|
is only one partition. It has type 0xee, if GPT is present in the System Area.
|
||||||
|
It has type 0xcd and offset 1*512, if no GPT is present.
|
||||||
|
|
||||||
|
Involved -as mkisofs options:
|
||||||
|
-hfsplus
|
||||||
|
-fat
|
||||||
|
-efi-boot-part DISKFILE
|
||||||
|
-prep-boot-part DISKFILE
|
||||||
|
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user