User:Scdbackup: Difference between revisions

From OSDev.wiki
Jump to navigation Jump to search
Content deleted Content added
Prepended explanatory headline
Test of new sub section "Example of ISO Filesystem Production Run For BIOS"
Line 63: Line 63:
old specs.
old specs.



== El Torito Structure ==
=== Creating the Structure in the ISO filesystem ===
The following text assumes that the ISO 9660 producing software is
compatible to [[Mkisofs]]. E.g. mkisofs, genisoimage, or xorrisofs.

[[Mkisofs]] expects that the boot images are submitted as
data files like any other file in the emerging ISO 9660
filesystem. Normally they are part of the directory trees
which get copied into the filesystem.

In most cases the Boot Catalog is represented in the filesystem
as data file, too. Its content is nevertheless composed by
[[Mkisofs]].

The boot images of ISOLINUX and GRUB2 expect to contain
some information about the ISO filesystem and their own
location and length. This information is called Boot Info Table
and gets inserted by [[Mkisofs]], if desired.
Boot Info Table is not specified by El Torito, but is rather
a convention introduced by boot loader developers.

=== Example of ISO Filesystem Production Run For BIOS ===

Revision as of 16:55, 18 October 2013

Testing my proposal for a new El-Torito article.


El-Torito is a standard for creating bootable optical media like CD-ROMs, DVD, or BD. It is an add-on to the ISO 9660 filesystem.

El-Torito describes different ways of booting from an optical medium. The starting point can either be an emulated floppy drive, an emulated hard disk, or a plain block address in the ISO filesystem.

Oldfashioned ways of boot preparations are described in the articles about bootable CD emulated as a floppy drive and about bootable CD using no emulation (via GRUB legacy).

More modern ways are no-emulation setups as made by GRUB2 script grub-mkrescue or as described by the ISOLINUX wiki of the Syslinux project.

Document Scope

The intention of this document is to explain what you need to know from the El-Torito standard to create a bootable CD with your own boot image. Details about the options for ISO 9660 image production can be found on the Mkisofs page.

El Torito Structure

El Torito booting begins by the Boot Record of the ISO 9660 filesystem at block address 0x11. See also article ISO 9660. This Boot Record points to a Boot Catalog which is stored in one or more blocks inside the ISO 9660 filesystem.

The content of Boot Record and Boot Catalog is created during filesystem production by the ISO 9660 producing software.

The Boot Catalog lists the available boot images which may be prepared for multiple system architectures, called "platforms". These images are marked either as emulated floppies, or as emulated hard disks, or as no-emulation images. In any case they are the first stage in the boot process where custom code from the ISO filesystem can be executed.

While the emulated boot images are to be interpreted by the firmware as is supposed for floppies and hard disks, the no-emulation boot images are on their own.

PC-BIOS reads from the Boot Catalog the number of blocks to load, loads them (usually to segment 07c0) and then executes them as code. As with a normal floppy or hard disk, the DL register contains the BIOS drive number.

EFI interprets the boot image as FAT filesystem and looks up a standardized file path for further processing.

The original El Torito specification mentions platforms "80x86", "PowerPC", and "Mac". Boot setups based on GRUB2 and ISOLINUX use "80x86" for PC-BIOS, and a platform id 0xef for (U)EFI which is not listed in the old specs.


Creating the Structure in the ISO filesystem

The following text assumes that the ISO 9660 producing software is compatible to Mkisofs. E.g. mkisofs, genisoimage, or xorrisofs.

Mkisofs expects that the boot images are submitted as data files like any other file in the emerging ISO 9660 filesystem. Normally they are part of the directory trees which get copied into the filesystem.

In most cases the Boot Catalog is represented in the filesystem as data file, too. Its content is nevertheless composed by Mkisofs.

The boot images of ISOLINUX and GRUB2 expect to contain some information about the ISO filesystem and their own location and length. This information is called Boot Info Table and gets inserted by Mkisofs, if desired. Boot Info Table is not specified by El Torito, but is rather a convention introduced by boot loader developers.

Example of ISO Filesystem Production Run For BIOS