Bootable hybrid (ISO/HFS) CD-ROMs

Summary: Bootable hybrid (ISO/HFS) CD-ROMs. How to produce such media from a PC. Does the El Torito standard applies to HFS CD-ROMs? Differences between booting a computer and autostarting a CD-ROM.
 

Introduction

This page is about the creation of bootable hybrid (ISO/HFS) CD-ROMs (CD-ROM able to boot a Macintosh computer and a PC running under Windows or Unix/Linux).
It is useful to stress the difference between booting a computer (bringing it to life under an operating system) and autostarting a CD-ROM (launching a program or a data file when the medium is inserted in the drive). In the first case, a computer was not running and is launched (booted) under an operating system fully or partially stored on the medium when you start it. In the second case, the user of a running computer inserts a CD-ROM (or any other removable medium) in the drive and expects an application to start automagically.
Please see our FAQ on MacImage for more details on the autostart feature and our page on Macimage for a method to produce such autostarting CD-ROMs on a PC.
We'll only speak about bootable hybrid CD-ROMs in the following text. We also publish on this site a page on bootable HFS CD-ROMs which you should visit if you don't need to produce a hybrid CD-ROM.

Booting a Computer From a CD-ROM

A specification was published in 1995 to describe a method to produce bootable ISO 9660 CD-ROMs. This standard, called "El Torito", can be downloaded from Phoenix Web site (Phoenix is one of the promoters of this standard).
The principle is to put a so-called "boot entry" in the sector 17, after the volume descriptor (stored in sector 16). This entry points to one or several bootable images (images of floppy disks or of other media). In the case of a multisession CD-ROM, this boot system must be stored in the last session (see section 2.0 of the standard).
Such a boot method is radically different from a normal boot, where the system accesses the sector 0 of its drives, in some predetermined order, to find a boot sector, that is code which will load the boot code at some memory address.

Does the El Torito Standard Applies to Macintosh Computers?

We don't think that this standard applies to Macintosh computers. Macintosh bootable media are plain HFS media, with a volume descriptor in the logical sector 0, then with a partition table in logical sector 1 pointing to the partitions created on the medium (even if the Mac OS never loads from a CD-ROM other partitions than the first one).
More, the Mac OS needs a special driver (called an extension) to access the ISO 9660 CD-ROMs. This extension is not available at boot time, what means that the booting Macintosh can't access the contents of the ISO CD-ROM.
Meanwhile, it is true that the El Torito standards mentions the PowerPC and the Macintosh (notably in its figures 2 and 4), as opposing to the 80x86 processor. In this context, "Macintosh" must probably be interpreted as the 68k processor family. Anyway, it is hard to understand the real meaning of this text. Maybe for an hypothetical computer based on those processors and running Unix or Linux?
Anyway, we don't think that one should deduce a contrario that the El Torito standard could be used to produce a CD-ROM able to boot a Macintosh computer (whether based on a PowerPC or a 68k). We never heard of such a project and don't think that somebody ever tried it.

Are They Solutions?

In front of those two conditions to be met (El Torito boot system in sector 17 of the last session of an ISO CD-ROM and Macintosh boot system in sector 0 of any session), two solutions may be envisaged.
Multisession CD-ROM: a first session is burnt from the image of a bootable HFS volume. Then a second session is burnt from the image of a bootable ISO image (conforming to the El Torito standard). This image should be built without references to the former session (without importing the former session).
In such a configuration, the Macintosh will boot from session 1 and load the ISO 9660 as a plain data CD-ROM, since the OS treats all sessions as distinct volumes. We don't think there could be a solution to hide this ISO 9660 session from the Macintosh. On the other hand, the PC will boot from the second session and will not load the first session. At least, Windows only loads the last session of a CD-ROM ; more, it doesn't know how to handle a HFS session without a tool like our MacDisk.
Hybrid CD-ROM: in this second solution, a hybrid CD-ROM is built by juxtaposition of the image of the bootable HFS volume and of the bootable ISO 9660 image. Juxtaposition means that the files contained in both partitions cannot be shared. The first logical sectors of the HFS partition are written in the first physical sectors of the ISO image (in the so-called reserved system sectors) and the HFS partition table points to the sectors after the ISO image. The rest of the HFS partition is appended to the ISO image.
In those conditions, each system will only see the part of the CD-ROM that it knows and will boot from it. One of the advantages of this solution is that the Macintosh doesn't load the ISO partition (special software is needed on the Macintosh to load both partitions [ISO and HFS] from a hybrid CD-ROM).
One should note that this kind of hybrid CD-ROM is not identical to the hybrid CD-ROMs built with tools like Toast on the Macintosh. We call the later case hybrid CD-ROMs with superposition, because both file catalogs are written at the beginning of the volume and point to the same data space, files being shared or not, under the same name or not. In our MacImage, the juxtaposition corresponds to the CD-ROMs built in the partition mode, and the superposition to the CD-ROMs built in the project mode.
For the time being, the first solution is the only one, because our Hybridator (tool to produce an image from a HFS volume and to write this partition around the ISO image) doesn't manage correctly the bootable volumes and rebuilds the partition table (see below).

How to Make a Bootable HFS image?

On the Macintosh, you have to create startup information in sectors 0 and 1 of the volume, then to copy a System folder in the root folder. Caution, all System folders are not the same. The best to use is one found on an Apple System installer disk.
We recommend you visit the page published by Roxio (new software subsidiary of Adaptec) on Making a Macintosh Bootable CD Using Toast.
From this volume, you could make an image with Toast, asking it to burn a CD-ROM from a HFS disk and redirecting the output to a file. Such an image is a faithful copy, sector by sector, of the original volume, and keeps its "bootability". Please note that Toast refuses to make a copy of the volume used to boot the system, because some files are in use in the System folder. Therefore, you must have several bootable volumes on the computer and select another one.
This image file can then be transfered to the PC with all usual means, notably our MacDisk. It will be the data source for the creation of the CD-ROM.
On the other hand, our Hybridator doesn't allow you to make a plain copy of a Macintosh volume because it tries to apply one of Apple rules, i.e. that CD-ROM should not carry a driver and should not be multipartitioned. That means that the current version of the software destroys the booting system while reconstructing a simpler partition table. We will probably add in the near future a special feature to allow the raw copy of a bootable volume.
On the other hand, hybridator accepts to take an image-file produced with Toast and to put it onto an ISO image (produced with another software on the PC).

How to Burn a Hybrid or HFS Image?

Burning a hybrid of HFS image is just like burning an ISO image or whatever kind of data. Please consult our CD-ROM FAQ for hints and tips on burning images with all current burning software packages and in particular for comments on some package which do more checks on the image files as they should.

 
Pierre Duhem (ex-Logiciels & Services Duhem)
3, rue Pierre Haret - F-75009 Paris (France) - Tel. (+33) [0]149 700 455
web: http://www.macdisk.com