User:Ady/Layouts of bootable ISO 9660 filesystem images

From Syslinux Wiki
< User:Ady
Revision as of 20:41, 28 December 2018 by Ady (talk | contribs) (Create "Layouts of bootable ISO 9660 filesystem images" page.)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Contents

Intro


This document is released under the Creative Commons Attribution 4.0 ("CC BY 4.0") license.

The start of the first custom program (usually a boot loader) by computer firmware is enabled by different kinds of data structures, depending on storage medium and firmware specifications.

This article refers to two different types of firmware, BIOS and UEFI, which are frequently present on older and newer personal computers. They are found on machines with Intel x86 and compatible CPUs and, in the case of UEFI, on machines with ARM CPUs too.

Storage media can either be optical discs: CD, DVD, BD, or hard-disk-like devices: magnetic disk, SSD, USB stick, memory cards, ...

Special ISO 9660 filesystem image layouts have been developed to cover booting on some or on all of the four possible combinations of firmware and medium.

The main scope of this document is layouts of isohybrid images for distribution of GNU/Linux, aimed at x86 and compatible CPUs. We briefly discuss other cases / situations, in order to show the differences against the aforementioned main scope.

For visual aid, some layouts of isohybrid images are summed-up in the appendix of this document.

Special thanks to Thomas Schmitt (maintainer of the Libburnia project, author of xorriso) for proposing the scope of this document and for his invaluable help as technical advisor and proof-reader.

Feedback is appreciated.

BIOS

BIOS is the older firmware for machines with Intel x86 and compatible CPUs. In many UEFI implementations, there is also a legacy compatibility mode (CSM), which behaves like BIOS.


BIOS from CD, DVD, or BD media: El Torito Platform Id 0

On optical media, the BIOS looks at block 17 of the medium for the Boot Volume Descriptor (or Boot Record). This record points to the El Torito Boot Catalog. The catalog lists one or more Boot Images; those with Platform Id 0 are suitable for x86 (and compatible) BIOS. In the Boot Catalog, there is usually only one Boot Image per Platform, so that the BIOS automatically knows which of them to process. The Boot Catalog and Boot Images might be accessible as data files in the ISO 9660 filesystem, or they might be "hidden", i.e. not referred to by any directory tree.

El Torito offers the possibility for the BIOS to parse images of floppy disks or small magnetic hard disks, and to then emulate those devices during the boot process as done from a real disk. Nevertheless, the two main bootloaders in the GNU/Linux world, Syslinux and GRUB, can avoid relying on such disk emulation by providing instead binary programs which shall get (partly) loaded and then started by the BIOS.

Part of the job of the ISO 9660 production program is:

  • to produce the Boot Record
  • to mark the BIOS Boot Images in the Boot Catalog with the proper Platform Id (0)
  • to mark the BIOS Boot Images in the Boot Catalog with the proper emulation mode.


BIOS from hard disk, SSD, USB stick: MBR x86 machine code

On hard-disk-like storage media, the BIOS looks for the signature of a Boot Record. If this signature is found, then the first logical sector (traditionally, 512 bytes) of the storage medium gets loaded and executed as binary x86 program. This very small program loads more bytes and hands-over execution to them, in order for the bootloader to start up.


BIOS hybrid for both: isohybrid, grub-mkrescue

The above two ways of starting the bootloader can be combined. Syslinux and GRUB offer MBR programs that load and start the El Torito Boot Image programs of ISO 9660 filesystem images. To avoid the need for ISO 9660 filesystem drivers, the actual block address of the boot image program gets directly patched into these MBR programs, during or after production of the ISO 9660 filesystem image.


EFI

EFI, or UEFI, is a more modern firmware for Intel x86 and compatible CPUs and for ARM CPUs.


UEFI from hard disk, SSD, USB stick: Partition table in MBR or as GPT

UEFI boots on hard-disk-like media by executing programs from the /EFI/BOOT/ directory located in a FAT filesystem that the firmware finds in a partition named "EFI System Partition" (ESP). This partition might be marked either by an entry in a GUID Partition Table (GPT) or by an entry in the MBR partition table. From the point of view of the UEFI specs, the usage of these two partitioning schemes is supposed to be mutually exclusive; the most popular layout for distribution of GNU/Linux ISO images deliberately ignores this detail of the UEFI spec.

The name of the default startup program in /EFI/BOOT/ depends on the platform type.

 32-bit x86 : BOOTIA32.EFI
 64-bit x86 : BOOTX64.EFI
 32-bit ARM : BOOTARM.EFI
 64-bit ARM : BOOTAA64.EFI

Thus, it is possible to include software for all four platform types in a single EFI System Partition.

In GPT, the EFI System Partition is marked by type GUID C12A7328-F81F-11D2-BA4B-00A0C93EC93B. In the MBR partition table, it is marked by type (or "id") 0xEF.


UEFI from CD, DVD, or BD media: El Torito Platform Id 0xEF

On optical media, UEFI looks in the El Torito Boot Catalog for Boot Images with Platform Id 0xEF. See the above paragraphs about BIOS on optical media for information about Boot Records in optical media, El Torito Boot Catalog and its Boot Entries/Images.

An El Torito Boot Image with Platform Id 0xEF is used as EFI System Partition (ESP). So, in most cases, the same block range is marked by both, the UEFI Boot Image in the El Torito Boot Catalog, and the UEFI System Partition in the Partition Table.

ISO 9660

ISO 9660 is a read-only filesystem; it gets produced by specialized programs as sequential data streams which might be recorded in disk files or burned onto optical media. The block size is 2048 bytes, although the specification offers the possibility to use different values.


System Area: 32 KiB room for hard disk boot equipment

The first 16 blocks (32768 bytes) are left unused by the ISO 9660 specification, which explicitly reserves it for "system use". This is the byte range where MBR boot code and partition tables can be stored, to enable booting from hard-disk-like storage media.

Primary Volume Descriptor, directory tree, Rock Ridge, data extents

Accessing an ISO 9660 filesystem begins at block 16 (byte 32768) by reading the Primary Volume Descriptor. This block tells the size claim of the filesystem and the block address of the root directory. The root directory might contain data files and subdirectories, which together form a directory tree. File names, file properties, and file types in ISO 9660 are quite sparse. To represent X/Open file names as with typical GNU/Linux filesystems, there is the Rock Ridge extra information. The directory tree is usually stored before the first block that holds content of a data file.


Supplementary Volume descriptor Joliet

Microsoft Inc. prefers to access ISO 9660 by a Supplementary Volume Descriptor that points to a second directory tree with names encoded in the 16-bit variant of UTF; this is called Joliet. Usually the data files in the Joliet tree refer to the same content blocks as the data files in the ISO 9660 tree, so both trees just bear different representations of the same names.


Apple Partition Map and HFS+

Besides ISO 9660, Joliet and the FAT filesystem in the EFI system partition, there might be another filesystem in an ISOhybrid image: Apple's HFS+. This add-on is marked by an Apple Partition Map. Its coexistence with MBR and GPT is possible by choosing the unusual block size of 2048 bytes for APM's structures and by wasting a few of the precious program code bytes at the start of the MBR.

Two variations are known: An image in a data file within the ISO 9660 filesystem, which does not refer to data outside the data file itself, or an HFS+ superblock and directory tree representing all the files of the ISO 9660 filesystem.

There is no official clear document listing the specific Intel-based Apple computers that are (still) capable of using HFS+ in optical media as ESP (whereas FAT is ignored by the same firmware). Moreover, this behavior has changed over time with different firmware versions.


Alternatives to hybrid ISO 9660 layouts

Because the following installation schemes do not use the initial boot starting points of the ISO 9660 images, they are only briefly mentioned here.

Unpackers from ISO to hard disk

Several programs unpack and transfer the content of ISO 9660 images into other filesystems (e.g. FAT32) on hard-disk-like storage media. Some of them interpret or extract parts of the boot equipment of the ISO 9660. Some install a boot loader or add menu items to an existing bootloader of the storage medium. Examples: Rufus, UNetbootin.

Bootloaders for multiple ISO 9660 images

Other tools enable booting of ISO 9660 images from partitions or from a filesystem by preparing a bootloader that offers each of the images in its boot menu. An example is GRUB Live ISO Multiboot (GLIM).

Reasons to use such specialized programs instead of a dd-like tool

  • Ability to "multiboot", i.e. having more than one OS or more than one ISO image in the same hard-disk-like device, and choosing which of them to boot from a "boot menu".
  • Possibility to use the filesystem with the installed software for persistent storage of a Live-CD system. See for example: https://wiki.ubuntu.com/LiveUsbPendrivePersistent
  • Possibility to install the system from the ISO 9660 filesystem into a single partition as neighbor of partitions serving as data storage.

Layouts found in the wild

For an explanation of the terms as reported by xorriso in the following sections, see https://dev.lovelyhq.com/libburnia/web/wikis/reportsystemarea .

BIOS optical media only

debian-504-amd64-netinst.iso

El Torito catalog  : 598  1
El Torito cat path : /isolinux/boot.cat
El Torito images   :   N  Pltf  B   Emul  Ld_seg  Hdpt  Ldsiz         LBA
El Torito boot img :   1  BIOS  y   none  0x0000  0x00      4         599
El Torito img path :   1  /isolinux/isolinux.bin
El Torito img opts :   1  boot-info-table

Boot Catalog and Boot Image are accessible by paths in the directory tree.

BIOS optical media only, hidden boot images

NetBSD-6.1.4-i386.iso

El Torito catalog  : 19  1
El Torito images   :   N  Pltf  B   Emul  Ld_seg  Hdpt  Ldsiz         LBA
El Torito boot img :   1  BIOS  y   none  0x0000  0x00      4          20
El Torito img blks :   1  4

Boot Catalog and Boot Image are not accessible by paths in the directory tree.

BIOS hybrid for optical media and hard-disk-like media

tails-amd64-3.5.iso

El Torito catalog  : 79  1
El Torito cat path : /isolinux/boot.cat
El Torito images   :   N  Pltf  B   Emul  Ld_seg  Hdpt  Ldsiz         LBA
El Torito boot img :   1  BIOS  y   none  0x0000  0x00      4          80
El Torito img path :   1  /isolinux/isolinux.bin
El Torito img opts :   1  boot-info-table isohybrid-suitable
System area summary: MBR isohybrid cyl-align-on
ISO image size/512 : 2367900
MBR partition table:   N Status  Type        Start       Blocks
MBR partition      :   1   0x80  0x17            0      2377620

The MBR x86 boot program knows the block address of the El Torito Boot Image and, when started, it loads and executes the program code in that image. The partition is not needed for booting; it marks the range of the ISO 9660 image and thus keeps partition editors from assigning this range to other partitions.

BIOS hybrid with partition offset

debian-6.0.5-amd64-businesscard.iso

El Torito catalog  : 704  1
El Torito cat path : /isolinux/boot.cat
El Torito images   :   N  Pltf  B   Emul  Ld_seg  Hdpt  Ldsiz         LBA
El Torito boot img :   1  BIOS  y   none  0x0000  0x00      4        8807
El Torito img path :   1  /isolinux/isolinux.bin
El Torito img opts :   1  boot-info-table isohybrid-suitable
System area summary: MBR isohybrid cyl-align-on
ISO image size/512 : 102400
Partition offset   : 16
MBR partition table:   N Status  Type        Start       Blocks
MBR partition      :   1   0x80  0x17           64       102336

In contrast to the previous image, partition #1 begins at 512-byte block 64. The partition is mountable because there is a second Primary Volume Descriptor and a second directory tree, which refers to the same content of data file as does the first directory tree.

EFI hybrid with neat MBR partitions

(Note: This is ARM, not x86/AMD)

debian-8.6.0-arm64-netinst.iso

El Torito catalog  : 920  1
El Torito cat path : /boot.catalog
El Torito images   :   N  Pltf  B   Emul  Ld_seg  Hdpt  Ldsiz         LBA
El Torito boot img :   1  UEFI  y   none  0x0000  0x00    832         921
El Torito img path :   1  /boot/grub/efi.img
System area summary: MBR cyl-align-all
ISO image size/512 : 331776
MBR partition table:   N Status  Type        Start       Blocks
MBR partition      :   1   0x00  0x83            0       331776
MBR partition      :   2   0x00  0xef       331776         2048

The EFI System Partition (ESP) is duplicated (in 2 different areas of the media), marked as Boot Image by the El Torito Boot Catalog and also by the MBR partition of type 0xef. The MBR holds only the partition table; its other bytes will not be executed as program code.

BIOS and UEFI hybrid with nested MBR partitions, GPT, APM/HFS+

Developed by Matthew J. Garret, "mjg". See https://mjg59.dreamwidth.org/11285.html

Fedora-Workstation-netinst-x86_64-23.iso

El Torito catalog  : 44  1
El Torito cat path : /isolinux/boot.cat
El Torito images   :   N  Pltf  B   Emul  Ld_seg  Hdpt  Ldsiz         LBA
El Torito boot img :   1  BIOS  y   none  0x0000  0x00      4      208256
El Torito boot img :   2  UEFI  y   none  0x0000  0x00  10780          45
El Torito boot img :   3  UEFI  y   none  0x0000  0x00  43168      171122
El Torito img path :   1  /isolinux/isolinux.bin
El Torito img opts :   1  boot-info-table isohybrid-suitable
El Torito img path :   2  /images/efiboot.img
El Torito img path :   3  /images/macboot.img
System area summary: MBR isohybrid cyl-align-on GPT APM
ISO image size/512 : 844528
MBR partition table:   N Status  Type        Start       Blocks
MBR partition      :   1   0x80  0x00            0       845824
MBR partition      :   2   0x00  0xef          180        10780
MBR partition      :   3   0x00  0x00       684488        43168
MBR partition path :   2  /images/efiboot.img
MBR partition path :   3  /images/macboot.img
GPT                :   N  Info
GPT disk GUID      :      2544134511a4c545b120ccf9f988055d
GPT entry array    :      16  128  overlapping
GPT lba range      :      48  845790  845823
GPT partition name :   1  490053004f004800790062007200690064002000490053004f00
GPT partname local :   1  ISOHybrid ISO
GPT partition GUID :   1  639e1f980d5de640ad771229bb88ac5c
GPT type GUID      :   1  a2a0d0ebe5b9334487c068b6b72699c7
GPT partition flags:   1  0x0000000000000000
GPT start and size :   1  0  844528
GPT partition name :   2  490053004f00480079006200720069006400
GPT partname local :   2  ISOHybrid
GPT partition GUID :   2  c2a9136420992c4289062b989989f841
GPT type GUID      :   2  a2a0d0ebe5b9334487c068b6b72699c7
GPT partition flags:   2  0x0000000000000000
GPT start and size :   2  180  10780
GPT partition path :   2  /images/efiboot.img
GPT partition name :   3  490053004f00480079006200720069006400
GPT partname local :   3  ISOHybrid
GPT partition GUID :   3  c2a9136420992c4289062b989989f841
GPT type GUID      :   3  005346480000aa11aa1100306543ecac
GPT partition flags:   3  0x0000000000000000
GPT start and size :   3  684488  43168
GPT partition path :   3  /images/macboot.img
APM                :   N  Info
APM block size     :      2048
APM gap fillers    :      0
APM partition name :   1  EFI
APM partition type :   1  Apple_HFS
APM start and size :   1  45  2695
APM partition path :   1  /images/efiboot.img
APM partition name :   2  EFI
APM partition type :   2  Apple_HFS
APM start and size :   2  171122  10792
APM partition path :   2  /images/macboot.img
"mjg" isohybrid layout:
Byte Purpose
0 APM magic number and at the same time MBR x86 machine code
446 MBR partition table: ISO 9660, EFI, HFS+
510 MBR magic number
512 GPT header block
2048 APM partition table: EFI (mislabeled as HFS+), real HFS+
8192 GPT partition entry array: ISO 9660, EFI, HFS+
32768 ISO 9660 Primary Volume Descriptor points to ISO 9660 tree
34816 El Torito Boot Record points to El Torito Boot Catalog
36864 Supplementary Volume Descriptor points to Joliet tree
ISO 9660 directory tree points to data files
Joliet directory tree points to data files El Torito Boot Catalog points to three boot images
Maybe content of other data files in the ISO filesystem
EFI El Torito boot image = EFI system partition "efiboot.img"
BIOS El Torito boot image "isolinux.bin"
HFS+ filesystem boot image "macboot.img"
Maybe content of other data files in the ISO filesystem
CD TAO read-ahead bug padding (300 KiB)
Cylinder alignment padding

The overlapping of MBR and GPT partition #1 with partitions #2 and #3 is not welcomed by partition editors. Firmware tends to ignore partitions of type 0x00.

Fedora uses a small, independent, HFS+ filesystem image, "macboot.img". Other variations can be seen with ISOs from grub-mkrescue.

Most other "mjg" ISOs lack the HFS+ boot image (which is in the El Torito catalog for the sole purpose of marking it for the isohybrid program). Some ISOs also lack the APM partition table, which is of use only for HFS+.

BIOS and UEFI hybrid "mjg" with nested MBR partitions, GPT, useless APM without HFS+

debian-9.3.0-amd64-netinst.iso

El Torito catalog  : 939  1
El Torito cat path : /isolinux/boot.cat
El Torito images   :   N  Pltf  B   Emul  Ld_seg  Hdpt  Ldsiz         LBA
El Torito boot img :   1  BIOS  y   none  0x0000  0x00      4        1148
El Torito boot img :   2  UEFI  y   none  0x0000  0x00    832         940
El Torito img path :   1  /isolinux/isolinux.bin
El Torito img opts :   1  boot-info-table isohybrid-suitable
El Torito img path :   2  /boot/grub/efi.img
System area summary: MBR isohybrid cyl-align-on GPT APM
ISO image size/512 : 593920
MBR partition table:   N Status  Type        Start       Blocks
MBR partition      :   1   0x80  0x00            0       593920
MBR partition      :   2   0x00  0xef         3760          832
MBR partition path :   2  /boot/grub/efi.img
GPT                :   N  Info
GPT disk GUID      :      6215a6529f54bb43805f66f9583c139f
GPT entry array    :      12  208  overlapping
GPT lba range      :      64  593866  593919
GPT partition name :   1  490053004f00480079006200720069006400
GPT partname local :   1  ISOHybrid
GPT partition GUID :   1  6215a6529f54bb43805e66f9583c139f
GPT type GUID      :   1  a2a0d0ebe5b9334487c068b6b72699c7
GPT partition flags:   1  0x1000000000000001
GPT start and size :   1  0  593864
GPT partition name :   2  490053004f004800790062007200690064003100
GPT partname local :   2  ISOHybrid1
GPT partition GUID :   2  6215a6529f54bb43805d66f9583c139f
GPT type GUID      :   2  a2a0d0ebe5b9334487c068b6b72699c7
GPT partition flags:   2  0x1000000000000001
GPT start and size :   2  3760  832
GPT partition path :   2  /boot/grub/efi.img
APM                :   N  Info
APM block size     :      2048
APM gap fillers    :      0
APM partition name :   1  EFI
APM partition type :   1  Apple_HFS
APM start and size :   1  940  208
APM partition path :   1  /boot/grub/efi.img

The APM is useless, because there is no HFS+ filesystem advertised. (But, well..., this image layout can look back on several years of testing by users.)

BIOS and UEFI hybrid with GPT and APM/HFS+, by xorriso underneath grub-mkrescue

GhostBSD10.3-RELEASE-20160827-182745-xfce-amd64.iso

El Torito catalog  : 2325  1
El Torito cat path : /boot.catalog
El Torito images   :   N  Pltf  B   Emul  Ld_seg  Hdpt  Ldsiz         LBA
El Torito boot img :   1  BIOS  y   none  0x0000  0x00      4       51875
El Torito boot img :   2  UEFI  y   none  0x0000  0x00   5760         382
El Torito img path :   1  /boot/grub/i386-pc/eltorito.img
El Torito img opts :   1  boot-info-table grub2-boot-info
El Torito img path :   2  /efi.img
System area summary: MBR protective-msdos-label grub2-mbr cyl-align-off GPT APM
ISO image size/512 : 3546336
MBR partition table:   N Status  Type        Start       Blocks
MBR partition      :   1   0x00  0xee            1      3546335
GPT                :   N  Info
GPT disk GUID      :      8c3f5a70cdc8084a87d6568e1807d705
GPT entry array    :      20  176  separated
GPT lba range      :      64  3546290  3546335
GPT partition name :   1  4700610070003000
GPT partname local :   1  Gap0
GPT partition GUID :   1  8c3f5a70cdc8084a87d2568e1807d705
GPT type GUID      :   1  a2a0d0ebe5b9334487c068b6b72699c7
GPT partition flags:   1  0x1000000000000001
GPT start and size :   1  64  1464
GPT partition name :   2  450046004900200062006f006f007400200070006100720074006900740069006f006e00
GPT partname local :   2  EFI boot partition
GPT partition GUID :   2  8c3f5a70cdc8084a87d3568e1807d705
GPT type GUID      :   2  28732ac11ff8d211ba4b00a0c93ec93b
GPT partition flags:   2  0x1000000000000001
GPT start and size :   2  1528  5760
GPT partition path :   2  /efi.img
GPT partition name :   3  48004600530050004c0055005300
GPT partname local :   3  HFSPLUS
GPT partition GUID :   3  8c3f5a70cdc8084a87d0568e1807d705
GPT type GUID      :   3  005346480000aa11aa1100306543ecac
GPT partition flags:   3  0x1000000000000001
GPT start and size :   3  7288  3538400
GPT partition name :   4  4700610070003100
GPT partname local :   4  Gap1
GPT partition GUID :   4  8c3f5a70cdc8084a87d1568e1807d705
GPT type GUID      :   4  a2a0d0ebe5b9334487c068b6b72699c7
GPT partition flags:   4  0x1000000000000001
GPT start and size :   4  3545688  600
APM                :   N  Info
APM block size     :      2048
APM gap fillers    :      2
APM partition name :   1  Gap0
APM partition type :   1  ISO9660_data
APM start and size :   1  16  1806
APM partition name :   2  HFSPLUS_Hybrid
APM partition type :   2  Apple_HFS
APM start and size :   2  1822  884600
APM partition name :   3  Gap1
APM partition type :   3  ISO9660_data
APM start and size :   3  886422  162

This image has a really valid GPT, because the MBR partition table has only one partition of type "ee" (aka "Protective MBR") and there is no other partition in the MBR partition table. Among the GPT partitions, only the EFI partition and the HFS+ one are mountable. In contrast to the above Fedora ISO, the HFS+ tree refers to all files in the ISO 9660 filesystem.

BIOS and UEFI hybrid with neat MBR partitions, and partition offset by kiwi

See https://opensuse.github.com/kiwi

openSUSE-Leap-42.1-NET-x86_64.iso

El Torito catalog  : 20  1
El Torito images   :   N  Pltf  B   Emul  Ld_seg  Hdpt  Ldsiz         LBA
El Torito boot img :   1  BIOS  y   none  0x0000  0x00      4        3922
El Torito boot img :   2  UEFI  y   none  0x0000  0x00      1          70
El Torito img path :   1  /boot/x86_64/loader/isolinux.bin
El Torito img opts :   1  boot-info-table isohybrid-suitable
El Torito img path :   2  /boot/x86_64/efi
System area summary: MBR isohybrid cyl-align-off
ISO image size/512 : 173836
MBR partition table:   N Status  Type        Start       Blocks
MBR partition      :   1   0x00  0xef          280         7560
MBR partition      :   2   0x80  0x17         7840       166240
MBR partition path :   1  /boot/x86_64/efi

SuSE's kiwi produces an ISO 9660 image containing another (partial) ISO 9660 image; one ISO 9660 image with an EFI system partition image located at a low block number, and another ISO 9660 image without that ESP image. The superblock, directory tree, and ESP image file of the first ISO, are prepended to the second one. So these three are mountable: the overall device file as ISO 9660, partition #1 as FAT, partition #2 as ISO 9660.

For an alternative explanation, see https://github.com/openSUSE/mksusecd/blob/master/layout.md .

BIOS and UEFI hybrid with neat MBR partitions, and partition offset by xorriso

KNOPPIX_V8.1-2017-09-05-EN.iso

El Torito catalog  : 78  1
El Torito cat path : /boot/isolinux/boot.cat
El Torito images   :   N  Pltf  B   Emul  Ld_seg  Hdpt  Ldsiz         LBA
El Torito boot img :   1  BIOS  y   none  0x0000  0x00      4         914
El Torito boot img :   2  UEFI  y   none  0x0000  0x00  30720     2213820
El Torito img path :   1  /boot/isolinux/isolinux.bin
El Torito img opts :   1  boot-info-table isohybrid-suitable
El Torito img blks :   2  7680
System area summary: MBR isohybrid cyl-align-off
ISO image size/512 : 8894192
Partition offset   : 16
MBR heads per cyl  : 0
MBR secs per head  : 0
MBR partition table:   N Status  Type        Start       Blocks
MBR partition      :   1   0x80  0x00           64      8855216
MBR partition      :   2   0x00  0xef      8855280        30720
MBR partition      :   3   0x00  0x83      8886000         8192

All three partitions and the overall device file are mountable. The ISO 9660 superblock of the overall device file is not mountable via any partition, and thus it is free to claim the whole image size as its filesystem range. Partition #3 does not belong to the boot equipment but rather contains an empty ReiserFS which Knoppix enlarges up to the end of the USB stick, when it gets booted for the first time.


Appendix

For visual aid, some layouts of isohybrid images are summed-up here.

Bootstrap Hierarchy Relations

 bootstrap hierarchy relations: 

                             
   Partitioning Scheme 
 (Header) 
 
       
     Partitioning Table 
 (Array) 
 
         
       Partitioning Area 
 and/or 
 Filesystem Volume 
   Bootstrap Method 
 (e.g. VBR, GPT's 
 ESP, APM's Blessed 
 HFS+, ...) 
 
   
   
   
   
   Firmware 
 ↓ 
 Optical Media 
 
       
     Boot Volume 
 Descriptor 
 
         
       ElTorito Boot 
 Catalog 
   ElTorito Boot 
 Catalog Entries 
 (according to each 
 Boot Platform) 
 
 
 


Volume Descriptor

 Volume Descriptors: 

         
Offset   00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15   
00   15
.   .
.  "System Area" of ISO9660 filesystem  .
.   .
32752   32767
32768   32783
.   .
.  Primary Volume Descriptor  .
.   .
34800   34815
34816   34831
.  Boot Volume Descriptor  .
.   .
.  (Boot Record, pointing to ElTorito Boot Catalog)  .
36848   36863
36864   36879
.  Supplementary Volume Descriptor(s)  .
.   .
.  ("N" Volumes, optional; e.g. Joliet)   .
     
 (36864) + 
2048 ∗ (N)
 
   (36864) + 
2048 ∗ (N+1)
 − 1 
 Volume Descriptor Set Terminator 
 
 (36864) + 
2048 ∗ (N+1)
 
   (multiple
of 2048)
 − 1 
 ISO9660 directory tree, root, data files... 
 
         


"mjg" partition scheme

 Partition Scheme "mjg": 

                                       
Offset   00   01   02   03   04   05   06   07   08   09   10   11   12   13   14   15   
00  APM's DDM  15
16 31
32   47
.  MBR's Initial Program Loader  .
.   .
.   .
432     447
448  1st entry in MBR's Partition Table    463
464  2nd entry in MBR's Partition Table    479
480  3rd entry in MBR's Partition Table    495
496  4th entry in MBR's Partition Table   55 AA  511
512   527
.  GPT Header  .
.   .
.   .
1008   1023
1024   1039
.   .
.   .
.   .
2032   2047
2048   2063
.  1st entry in APM's Partition Table  .
.   .
.  Apple Partition Map  .
4080   4095
4096   4111
.  2nd entry in APM's Partition Table  .
.   .
.  EFI  .
6128   6143
6144   6159
.  3rd entry in APM's Partition Table  .
.   .
.  HFS+  .
8176   8191
8192   8207
.  1st entry in GPT Partition Array  .
.   .
.  ISO  .
8304   8319
8320   8335
.  2nd entry in GPT Partition Array  .
.   .
.  EFI  .
8432   8447
8448   8463
.  3rd entry in GPT Partition Array  .
.   .
.  HFS+  .
8560   8575
8576   8591
.  4th entry in GPT Partition Array  .
.   .
.   .
8688   8703
8704   8719
.  Unused⁄Empty entries in GPT Partition Array  .
.   .
.   .
24560   24575
24576   24591
.   .
.   .
.   .
32736   32751
32752  (End of "System Area" of ISO9660 filesystem)  32767
32768  (Start of ISO9660's Primary Volume Descriptor)  32783
.   .
.   .
.   .
 GPT Backup Partition Array 
 GPT Backup Header 
 (Zero-padding for alignment, End of ISO image) 
                                       


"mjg" layout

 "mjg's" isohybrid layout: 

                                                       
 APM's DDM, 
 + MBR 
             
ISO9660

ISO
image
         
         
   
     MBR1stPT:0x00                           MBR1st
   0x00 
 
                       
       
   MBR2ndPT:0xEF     
     
     
   MBR3rdPT:0x00     
     
     
   MBR4thPT:     
   
     
   0x55 0xAA 
 
     
 GPT header       
   
     
     
     APM1st  
     
     
   APM2nd: EFI                   
           
         
   APM3rd: HFS+       
       
       
 
     
       
     GPT1st: ISO               
         
     
   GPT2nd: EFI               
         
     
   GPT3rd: HFS+       
     
     
   GPT4th  
 
     
         
     
 
     ISO9660 
 
     
     
     
   Boot Catalog                       boot.cat   
       
     
     Initial Default 
 Boot Entry: BIOS 
                     isolinux.bin   
       
     
     Boot Entry: 
 UEFI 
                   FAT     efiboot.img   
           
     
     Boot Entry:
 old Intel-Mac's EFI 
               HFS+     macboot.img   
     
     
         
       Additional FS (optional) 
   
 GPT backup 
 header 
   GPT backup 
 
   Zero−padding for alignment 
                                                       


"GhostBSD grub-mkrescue" partition scheme

 Partition Scheme GhostBSD grub-mkrescue: 

                                       
Offset   00   01   02   03   04   05   06   07   08   09   10   11   12   13   14   15   
00  APM's DDM    15
16   31
32   47
.  MBR's Initial Program Loader  .
.   .
.   .
432     447
448  1st entry in MBR's Partition Table 0XEE    463
464  2nd entry in MBR's Partition Table    479
480  3rd entry in MBR's Partition Table    495
496  4th entry in MBR's Partition Table   55 AA  511
512   527
.  GPT Header  .
.   .
.   .
1008   1023
1024   1039
.   .
.   .
.   .
2032   2047
2048   2063
.  1st entry in APM's Partition Table  .
.   .
.  Apple Partition Map  .
4080   4095
4096   4111
.  2nd entry in APM's Partition Table  .
.   .
.  Gap0 ISO9660_data  .
6128   6143
6144   6159
.  3rd entry in APM's Partition Table  .
.   .
.  HFSPLUS_Hybrid  .
8176   8191
8192   8207
.  4th entry in APM's Partition Table  .
.   .
.  Gap1 ISO9660_data  .
10224   10239
10240   10255
.  1st entry in GPT Partition Array  .
.   .
.  Gap0  .
10352   10367
10368   10383
.  2nd entry in GPT Partition Array  .
.   .
.  EFI  .
10480   10495
10496   10511
.  3rd entry in GPT Partition Array  .
.   .
.  HFS+  .
10608   10623
10624   10639
.  4th entry in GPT Partition Array  .
.   .
.  Gap1  .
10736   10751
10752   10767
.  Unused⁄Empty entries in GPT Partition Array  .
.   .
.   .
32752  (End of "System Area" of ISO9660 filesystem)  32767
32768  (Start of ISO9660's Primary Volume Descriptor)  32783
.   .
.   .
.   .
 GPT Backup Partition Array 
 GPT Backup Header 
 (Zero-padding for alignment, End of ISO image) 
                                       


"GhostBSD grub-mkrescue" layout

 GhostBSD grub-mkrescue: 

                                                       
 APM's DDM, 
 + MBR 
       
ISO9660

ISO
image
   
         
   
     MBR1stPT:0xEE     MBR1st
   0xEE 
   
       
   MBR2ndPT:   
 
   
   MBR3rdPT:   
 
   
   MBR4thPT:   
 
   
   0x55 0xAA 
 
     
 GPT header       
     
         
       
     APM1st    
     
     
   APM2nd: Gap0   
 
     
   APM3rd: HFS+     
     
     
   APM4th: Gap1   
 
     
   
         
           
     GPT1st: Gap0   
 
   
   GPT2nd: EFI           
       
               
   GPT3rd: HFS+             
 
               
   GPT4th: Gap1                  
 
                     
                             
                             
 
             HFS+          
   
                 
                 
                 
   Boot Catalog                 boot.catalog     boot.catalog   
       
     
     Initial Default 
 Boot Entry: BIOS 
               eltorito.img     eltorito.img   
       
     
     Boot Entry: 
 UEFI 
               FAT     efi.img   
         
     
             
       Additional FS (optional) 
   
 GPT backup 
 header 
   GPT backup 
 
   Zero−padding for alignment 
                                                       


"opensuse kiwi mksusecd" layout

 openSUSE kiwi mksusecd: 

                                                       
 MBR         
ISO9660

ISO
image
   
         
   
     MBR1stPT:0xEF     MBR1st
   0xEF 
       
       
   MBR2ndPT:0x17       
             
           
   MBR3rdPT:   
   MBR2nd
   0x17 
unused
ISO9660
superblock
             
   MBR4thPT:           
     
   
   0x55 0xAA 
 
 
   Boot Catalog                     (hidden)   
         
     
     Initial Default 
 Boot Entry: BIOS 
                   isolinux.bin   
         
     
     Boot Entry: 
 UEFI 
                   efi   
           
     
             
       Additional FS (optional) 
   
   Zero−padding for alignment