What is ISOLINUX?
ISOLINUX is a boot loader for Linux/i386 that operates off ISO 9660/El Torito CD-ROMs in "no emulation" mode. This avoids the need to create an "emulation disk image" with limited space (for "floppy emulation") or compatibility problems (for "hard disk emulation".)
How Can I Make a Bootable CD With ISOLINUX?
Make sure you have a recent enough version of mkisofs. I recommend mkisofs 1.13 (distributed with cdrecord 1.9), but 1.12 might work as well (not tested.)
To create an image, create a directory called "isolinux" (or, if you prefer, "boot/isolinux") underneath the root directory of your ISO image master file tree. Copy isolinux.bin, a config file called "isolinux.cfg" (see syslinux.doc for details on the configuration file), and all necessary files (kernels, initrd, display files, etc.) into this directory, then use the following command to create your ISO image (add additional options as appropriate, such as -J or -R):
mkisofs -o output.iso \ -b isolinux/isolinux.bin -c isolinux/boot.cat \ -no-emul-boot -boot-load-size 4 -boot-info-table \ root-of-iso-tree
(If you named the directory boot/isolinux that should of course be -b boot/isolinux/isolinux.bin -c boot/isolinux/boot.cat.)
ISOLINUX resolves pathnames the following way: A pathname consists of names separated by slashes, Unix-style. A leading slash means it searches from the root directory; otherwise the search is from the isolinux directory (think of this as the "current directory".) . and .. in pathname searches are not supported. The maximum length of any pathname is 255 characters.
Note that ISOLINUX only uses the "plain" ISO 9660 filenames, i.e. it does not support Rock Ridge or Joliet filenames. It can still be used on a disk which uses Rock Ridge and/or Joliet extensions, of course. Under Linux, you can verify the plain filenames by mounting with the "-o norock,nojoliet" option to the mount command. Note, however, that ISOLINUX does support "long" (level 2) ISO 9660 plain filenames, so if compatibility with short-names-only operating systems like MS-DOS is not an issue, you can use the "-l" or "-iso-level 2" option to mkisofs to generate long (up to 31 characters) plain filenames.
ISOLINUX does not support discontiguous files, interleaved mode, or logical block and sector sizes other than 2048. This should normally not be a problem.
ISOLINUX is by default built in two versions, one version with extra debugging messages enabled. If you are having problems with ISOLINUX, I would greatly appreciate if you could try out the debugging version (isolinux-debug.bin) and let me know what it reports. NOTE: ISOLINUX will search for the config file directory in the order /boot/isolinux, /isolinux, /. The first directory that exists is used, even if it contains no files. Therefore, please make sure that these directories don't exist if you don't want ISOLINUX to use them.
Can I boot other operating systems with ISOLINUX?
Starting in version 1.65, ISOLINUX supports booting disk images of other operating systems. However, this feature depends on BIOS functionality which is apparently broken in a very large number of BIOSes. Therefore, this may not work on any particular system. No direct workaround is possible; if you find that it doesn't work please complain to your vendor and indicate that "BIOS INT 13h AX=4C00h fails." Note that you can use MEMDISK as an alternative; MEMDISK is not affected by this problem, but limits the size of the disk images, since it has to load them into memory.
To boot DOS, or other real-mode operating systems (protected-mode operating systems may or may not work correctly), using ISOLINUX, you need to prepare a disk image (usually a floppy image, but a hard disk image can be used on most systems) with the relevant operating system. This file should be included on the CD-ROM in the /isolinux directory, and have a .img extension. The .img extension does not have to be specified on the command line, but has to be explicitly specified if used in a kernel statement in isolinux.cfg.
For a floppy image, the size of the image should be exactly one of the following:
1,222,800 bytes 1200K floppy (standard 5.25") 1,474,560 bytes 1440K floppy (standard 3.5") 2,949,120 bytes 2880K floppy (enhanced 3.5")
Any other size is assumed to be a hard disk image. In order to work on as many systems as possible, a hard disk image should have exactly one partition, marked active, that covers the entire size of the disk image file. Even so, hard disk images are not supported on all BIOSes.
ISOLINUX and Windows install disks
ISOLINUX supports the use of so-called "CD-ROM boot sectors", which are used primarily by Microsoft Windows NT (including 2000 and XP.) "CD-ROM boot sectors" need to end in the extension .bin. Some people have used this together with Windows install disks to create combination Windows/Linux install CDs.
Please see the following message from the SYSLINUX mailing list for some tips: http://www.zytor.com/pipermail/syslinux/2002-October/001135.html
What to do when nothing works...
Unfortunately, in what seems to be part for the course when dealing with contemporary BIOSes, there are still a fair number of (mostly older) systems on which ISOLINUX simply will not work. On those systems, you may want to try Smart BootManager, a boot floppy which contains a standalone El Torito stack.