| 1 | ISOLINUX |
|---|
| 2 | |
|---|
| 3 | A bootloader for Linux using ISO 9660/El Torito CD-ROMs |
|---|
| 4 | |
|---|
| 5 | Copyright 1994-2008 H. Peter Anvin - All Rights Reserved |
|---|
| 6 | |
|---|
| 7 | This program is provided under the terms of the GNU General Public |
|---|
| 8 | License, version 2 or, at your option, any later version. There is no |
|---|
| 9 | warranty, neither expressed nor implied, to the function of this |
|---|
| 10 | program. Please see the included file COPYING for details. |
|---|
| 11 | |
|---|
| 12 | ---------------------------------------------------------------------- |
|---|
| 13 | |
|---|
| 14 | ISOLINUX is a boot loader for Linux/i386 that operates off ISO 9660/El |
|---|
| 15 | Torito CD-ROMs in "no emulation" mode. This avoids the need to create |
|---|
| 16 | an "emulation disk image" with limited space (for "floppy emulation") |
|---|
| 17 | or compatibility problems (for "hard disk emulation".) |
|---|
| 18 | |
|---|
| 19 | This documentation isn't here yet, but here is enough that you should |
|---|
| 20 | be able to test it out: |
|---|
| 21 | |
|---|
| 22 | Make sure you have a recent enough version of mkisofs. I recommend |
|---|
| 23 | mkisofs 1.13 (distributed with cdrecord 1.9), but 1.12 might work as |
|---|
| 24 | well (not tested.) |
|---|
| 25 | |
|---|
| 26 | To create an image, create a directory called "isolinux" (or, if you |
|---|
| 27 | prefer, "boot/isolinux") underneath the root directory of your ISO |
|---|
| 28 | image master file tree. Copy isolinux.bin, a config file called |
|---|
| 29 | "isolinux.cfg" (see syslinux.txt for details on the configuration |
|---|
| 30 | file), and all necessary files (kernels, initrd, display files, etc.) |
|---|
| 31 | into this directory, then use the following command to create your ISO |
|---|
| 32 | image (add additional options as appropriate, such as -J or -R): |
|---|
| 33 | |
|---|
| 34 | mkisofs -o <isoimage> \ |
|---|
| 35 | -b isolinux/isolinux.bin -c isolinux/boot.cat \ |
|---|
| 36 | -no-emul-boot -boot-load-size 4 -boot-info-table \ |
|---|
| 37 | <root-of-iso-tree> |
|---|
| 38 | |
|---|
| 39 | (If you named the directory boot/isolinux that should of course be |
|---|
| 40 | -b boot/isolinux/isolinux.bin -c boot/isolinux/boot.cat.) |
|---|
| 41 | |
|---|
| 42 | ISOLINUX resolves pathnames the following way: |
|---|
| 43 | |
|---|
| 44 | - A pathname consists of names separated by slashes, Unix-style. |
|---|
| 45 | - A leading / means it searches from the root directory; otherwise the |
|---|
| 46 | search is from the isolinux directory (think of this as the "current |
|---|
| 47 | directory".) |
|---|
| 48 | - . and .. in pathname searches are not supported. |
|---|
| 49 | - The maximum length of any pathname is 255 characters. |
|---|
| 50 | |
|---|
| 51 | Note that ISOLINUX only uses the "plain" ISO 9660 filenames, i.e. it |
|---|
| 52 | does not support Rock Ridge or Joliet filenames. It can still be used |
|---|
| 53 | on a disk which uses Rock Ridge and/or Joliet extensions, of course. |
|---|
| 54 | Under Linux, you can verify the plain filenames by mounting with the |
|---|
| 55 | "-o norock,nojoliet" option to the mount command. Note, however, that |
|---|
| 56 | ISOLINUX does support "long" (level 2) ISO 9660 plain filenames, so if |
|---|
| 57 | compatibility with short-names-only operating systems like MS-DOS is |
|---|
| 58 | not an issue, you can use the "-l" or "-iso-level 2" option to mkisofs |
|---|
| 59 | to generate long (up to 31 characters) plain filenames. |
|---|
| 60 | |
|---|
| 61 | ISOLINUX does not support discontiguous files, interleaved mode, or |
|---|
| 62 | logical block and sector sizes other than 2048. This should normally |
|---|
| 63 | not be a problem. |
|---|
| 64 | |
|---|
| 65 | ISOLINUX is by default built in two versions, one version with extra |
|---|
| 66 | debugging messages enabled. If you are having problems with ISOLINUX, |
|---|
| 67 | I would greatly appreciate if you could try out the debugging version |
|---|
| 68 | (isolinux-debug.bin) and let me know what it reports. The debugging |
|---|
| 69 | version does not include hybrid mode support (see below.) |
|---|
| 70 | |
|---|
| 71 | |
|---|
| 72 | ++++ NOTE ON THE CONFIG FILE DIRECTORY ++++ |
|---|
| 73 | |
|---|
| 74 | ISOLINUX will search for the config file directory in the order |
|---|
| 75 | /boot/isolinux, /isolinux, /. The first directory that exists is |
|---|
| 76 | used, even if it contains no files. Therefore, please make sure that |
|---|
| 77 | these directories don't exist if you don't want ISOLINUX to use them. |
|---|
| 78 | |
|---|
| 79 | |
|---|
| 80 | ++++ HYBRID CD-ROM/HARD DISK MODE ++++ |
|---|
| 81 | |
|---|
| 82 | Starting in version 3.72, ISOLINUX supports a "hybrid mode" which can |
|---|
| 83 | be booted from either CD-ROM or from a device which BIOS considers a |
|---|
| 84 | hard disk or ZIP disk, e.g. a USB key or similar. |
|---|
| 85 | |
|---|
| 86 | To enable this mode, the .iso image should be postprocessed with the |
|---|
| 87 | "isohybrid" script from the utils directory: |
|---|
| 88 | |
|---|
| 89 | isohybrid filename.iso |
|---|
| 90 | |
|---|
| 91 | This script creates the necessary additional information to be able to |
|---|
| 92 | boot in hybrid mode. It also pads out the image to an even multiple |
|---|
| 93 | of 1 MB. |
|---|
| 94 | |
|---|
| 95 | This image can then be copied using any raw disk writing tool (on Unix |
|---|
| 96 | systems, typically "dd" or "cat") to a USB disk, or written to a |
|---|
| 97 | CD-ROM using standard CD burning tools. |
|---|
| 98 | |
|---|
| 99 | The ISO 9660 filesystem is encapsulated in a partition (which starts |
|---|
| 100 | at offset zero, which may confuse some systems.) This makes it |
|---|
| 101 | possible for the operating system, once booted, to use the remainder |
|---|
| 102 | of the device for persistent storage by creating a second partition. |
|---|