GRUB supports the no emulation mode in the El Torito specification1. This means that you can use the whole CD-ROM from GRUB and you don't have to make a floppy or hard disk image file, which can cause compatibility problems.
For booting from a CD-ROM, GRUB uses a special Stage 2 called
stage2_eltorito
. The only GRUB files you need to have in your
bootable CD-ROM are this stage2_eltorito
and optionally a config file
menu.lst
. You don't need to use stage1
or stage2
,
because El Torito is quite different from the standard boot process.
Here is an example of procedures to make a bootable CD-ROM
image. First, make a top directory for the bootable image, say,
iso
:
$ mkdir iso
Make a directory for GRUB:
$ mkdir -p iso/boot/grub
Copy the file stage2_eltorito
:
$ cp /usr/share/grub/i386-pc/stage2_eltorito iso/boot/grub
If desired, make the config file menu.lst
under iso/boot/grub
(see Configuration), and copy any files and directories for the disc to the
directory iso/
.
Finally, make a ISO9660 image file like this:
$ mkisofs -R -b boot/grub/stage2_eltorito -no-emul-boot \ -boot-load-size 4 -boot-info-table -o grub.iso iso
This produces a file named grub.iso
, which then can be burned
into a CD (or a DVD). mkisofs has already set up the disc to boot
from the boot/grub/stage2_eltorito file, so there is no need to
setup GRUB on the disc. (Note that the -boot-load-size 4 bit is
required for compatibility with the BIOS on many older machines.)
You can use the device (cd)
to access a CD-ROM in your
config file. This is not required; GRUB automatically sets the root device
to (cd)
when booted from a CD-ROM. It is only necessary to refer to
(cd)
if you want to access other drives as well.