Difference between revisions of "Doc/isolinux"

From Syslinux Wiki
Jump to: navigation, search
(The content of doc/isolinux.txt (release 3.72))
 
(Update to v.6.04-pre1, with minor modifications. Wiki formatting.)
 
(5 intermediate revisions by 3 users not shown)
Line 1: Line 1:
[[Category:Release Documentation]][[Category:ISOLINUX]]
+
[[Category:Release Documentation]]
''The content of doc/isolinux.txt (release 3.72):''
+
[[Category:ISOLINUX]]
 +
'''This document is partially outdated. Please see [[ISOLINUX]].'''<br />
 +
''The content of doc/isolinux.txt (<!--release -->6.04-pre1, with minor corrections):''
  
=ISOLINUX=
+
<div style="color: black; background: none; font-weight: normal; margin: 0; padding-top: .5em; padding-bottom: .17em; border-bottom: 1px solid #aaa; font-size: 188%; text-align: center; "> <center> ISOLINUX </center> </div>
  
<center>'''A bootloader for Linux using ISO 9660/El Torito CD-ROMs'''</center>
+
<center>'''A bootloader for Linux using {{nowrap|ISO 9660/El Torito}} CD-ROMs'''</center>
  
 
<center>''Copyright 1994-2008 H. Peter Anvin - All Rights Reserved''</center>
 
<center>''Copyright 1994-2008 H. Peter Anvin - All Rights Reserved''</center>
  
This program is provided under the terms of the GNU General Public License, version 2 or, at your option, any later version.  There is no warranty, neither expressed nor implied, to the function of this program.  Please see the included file COPYING for details.
+
This program is provided under the terms of the GNU General Public  
 
+
License, version 2 or, at your option, any later version.  There is no  
 +
warranty, neither expressed nor implied, to the function of this  
 +
program.  Please see the included file COPYING for details.
  
 
----
 
----
 +
__toc__
 +
ISOLINUX is a boot loader for Linux/i386 that operates off {{nowrap|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").
  
 +
This documentation isn't here yet, but here is enough that you should
 +
be able to test it out:
  
ISOLINUX is a boot loader for Linux/i386 that operates off ISO 9660/El Torito CD-ROMs in "no emulation" modeThis avoids the need to create an "emulation disk image" with limited space (for "floppy emulation") or compatibility problems (for "hard disk emulation".)
+
Make sure you have a recent enough version of mkisofsI recommend
 +
mkisofs 1.13 (distributed with cdrecord 1.9), but 1.12 might work as
 +
well (not tested).
  
This documentation isn't here yet, but here is enough that you should be able to test it out:
+
To create an image, create a directory called "<tt>isolinux</tt>" (or, if you  
 
+
prefer, "<tt>boot/isolinux</tt>") underneath the root directory of your ISO  
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.)
+
image master file tree.  Copy isolinux.bin, a config file called  
 
+
"<tt>isolinux.cfg</tt>" (see [[doc/syslinux|syslinux.txt]] for details on the configuration  
To create an image, create a directory called "<tt>isolinux</tt>" (or, if you prefer, "<tt>boot/isolinux</tt>") underneath the root directory of your ISO image master file tree.  Copy isolinux.bin, a config file called "<tt>isolinux.cfg</tt>" (see [[doc/syslinux|syslinux.txt]] 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):
+
file), and all necessary files (kernels, initrd, display files, etc.)  
<pre>
+
into this directory, then use the following command to create your ISO  
        mkisofs -o <isoimage> \
+
image (add additional options as appropriate, such as -J or -R):
                -b isolinux/isolinux.bin -c isolinux/boot.cat \
+
{|
                -no-emul-boot -boot-load-size 4 -boot-info-table \
+
|
                <root-of-iso-tree>
+
mkisofs -o <isoimage> \
</pre>
+
-b isolinux/isolinux.bin -c isolinux/boot.cat \
(If you named the directory <tt>boot/isolinux</tt> that should of course be
+
-no-emul-boot -boot-load-size 4 -boot-info-table \
<pre>
+
<root-of-iso-tree>
                -b boot/isolinux/isolinux.bin -c boot/isolinux/boot.cat.)
+
|}
</pre>
+
If you named the directory <tt>boot/isolinux</tt> that should of course be
 +
{|
 +
|
 +
-b boot/isolinux/isolinux.bin -c boot/isolinux/boot.cat
 +
|}
  
 
ISOLINUX resolves pathnames the following way:
 
ISOLINUX resolves pathnames the following way:
  
- A pathname consists of names separated by slashes, Unix-style.
+
* A pathname consists of names separated by slashes, Unix-style.
- A leading / means it searches from the root directory; otherwise the search is from the isolinux directory (think of this as the "current directory".)
+
* A leading "<tt>/</tt>" means it searches from the root directory<sup><small><tt>{{nowrap|1=&#91;of the ISO 9660 filesystem&#93;}}</tt></small></sup>; otherwise the <!--
- . and .. in pathname searches are not supported.
+
--> search is from the isolinux directory (think of this as the "current <!--
- The maximum length of any pathname is 255 characters.
+
--> directory").
 
+
* <s> . and .. in pathname searches are not supported.</s>
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 "<tt>-o norock,nojoliet</tt>" option to the mount command.  Note, however, that
+
* The maximum length of any pathname is 255 characters.
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 "<tt>-l</tt>" or "<tt>-iso-level 2</tt>" 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 enabledIf you are having problems with ISOLINUX, I would greatly appreciate if you could try out the debugging version (<tt>isolinux-debug.bin</tt>) and let me know what it reportsThe debugging version does not include hybrid mode support (see below.)
+
Note that ISOLINUX only uses the "plain" ISO 9660 filenames, i.e. it
 +
does not support Rock Ridge or Joliet filenamesIt 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
 +
"<tt>-o norock,nojoliet</tt>" option to the mount commandNote, 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 "<tt>-l</tt>" or "<tt>-iso-level 2</tt>" 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.
  
=NOTE ON THE CONFIG FILE DIRECTORY=
+
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
 +
(<tt>isolinux-debug.bin</tt>) and let me know what it reports.  The debugging
 +
version does not include hybrid mode support (see below).
  
ISOLINUX will search for the config file directory in the order <tt>/boot/isolinux</tt>, <tt>/isolinux</tt>, <tt>/.</tt>  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.
 
  
 +
== NOTE ON THE CONFIG FILE DIRECTORY ==
  
=HYBRID CD-ROM/HARD DISK MODE=
+
ISOLINUX will search for the config file directory in the order
 +
# <tt>/boot/isolinux</tt>
 +
# <tt>/isolinux</tt>
 +
# <tt>/</tt>
 +
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.
  
Starting in version 3.72, ISOLINUX supports a "hybrid mode" which can be booted from either CD-ROM or from a device which BIOS considers a hard disk or ZIP disk, e.g. a USB key or similar.
+
<!-- -->
 +
<!-- The following paragraph is not part of the official documentation: -->
 +
<!-- -->
 +
<small><font color=lightgray><!--
 +
-->See also [[Doc/syslinux#CONFIGURATION_FILE|Syslinux configuration file]]<!--
 +
--></font></small>
 +
<!-- -->
  
To enable this mode, the .iso image should be postprocessed with the "<tt>isohybrid</tt>" script from the utils directory:
 
<pre>
 
        isohybrid filename.iso
 
</pre>
 
This script creates the necessary additional information to be able to boot in hybrid mode.  It also pads out the image to an even multiple of 1 MB.
 
  
This image can then be copied using any raw disk writing tool (on Unix systems, typically "<tt>dd</tt>" or "<tt>cat</tt>") to a USB disk, or written to a CD-ROM using standard CD burning tools.
+
== HYBRID CD-ROM/HARD DISK MODE ==
  
The ISO 9660 filesystem is encapsulated in a partition (which starts at offset zero, which may confuse some systems.)  This makes it possible for the operating system, once booted, to use the remainder of the device for persistent storage by creating a second partition.
+
Starting in version 3.72, ISOLINUX supports a "hybrid mode" which can
 +
be booted from either CD-ROM or from a device which BIOS considers a
 +
hard disk or ZIP disk, e.g. a USB key or similar.
  
 +
To enable this mode, the .iso image should be {{nowrap|post-processed}} with the
 +
"<tt>isohybrid</tt>" script from the utils directory:
  
=BOOTING DOS (OR OTHER SIMILAR OPERATING SYSTEMS)=
+
isohybrid filename.iso
  
'''WARNING:''' This feature depends on BIOS functionality which is apparently broken in a very large number of BIOSesTherefore, this may not work on any particular system.  No 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."
+
This script creates the necessary additional information to be able to
 +
boot in hybrid modeIt also pads out the image to an even multiple
 +
of 1 MB.
  
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 "<tt>.img</tt>" extension does not have to be specified on the command line, but has to be explicitly specified if used in a "kernel" statement in <tt>isolinux.cfg</tt>.
+
This image can then be copied using any raw disk writing tool (on Unix
 +
systems, typically "<tt>dd</tt>" or "<tt>cat</tt>") to a USB disk, or written to a
 +
CD-ROM using standard CD burning tools.
  
For a floppy image, the size of the image should be exactly one of the following:
+
The ISO 9660 filesystem is encapsulated in a partition (which starts
 +
at offset zero, which may confuse some systems).  This makes it
 +
possible for the operating system, once booted, to use the remainder
 +
of the device for persistent storage by creating a second partition.
  
:::1,228,800 bytes        - For a 1200K floppy image
+
<!-- -->
:::1,474,560 bytes        - For a 1440K floppy image
+
<!-- The following paragraph is not part of the official documentation: -->
:::2,949,120 bytes        - For a 2880K floppy image
+
<!-- -->
 +
<small><font color=lightgray><!--
 +
-->See also [[Isohybrid]]<!--
 +
--></font></small>
 +
<!-- -->
  
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.
+
<!-- The following section was included in the Syslinux wiki as of v.3.72. -->
 +
<!-- The feature is no longer supported since 2011Apr. before v.4.05 was released. -->
 +
<!-- commit: "isolinux: remove .img file support" -->
 +
<!-- https://git.zytor.com/syslinux/syslinux.git/commit/?h=syslinux-4.05&id=b9f526b27b445b5a9b0845a598cc8babefed5f6d -->
 +
<!-- https://git.kernel.org/pub/scm/boot/syslinux/syslinux.git/commit/?h=syslinux-4.05&id=b9f526b27b445b5a9b0845a598cc8babefed5f6d -->
 +
<!-- https://repo.or.cz/syslinux.git/commit/b9f526b27b445b5a9b0845a598cc8babefed5f6d -->
 +
<!-- -->
 +
<!-- == BOOTING DOS (OR OTHER SIMILAR OPERATING SYSTEMS) == -->
 +
<!-- -->
 +
<!-- '''WARNING:''' 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 workaround is possible; if -->
 +
<!-- you find that it doesn't work please complain to your vendor and -->
 +
<!-- indicate that "<tt>{{nowrap|1=BIOS INT 13h AX=4C00h}}</tt> fails". -->
 +
<!-- -->
 +
<!-- 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 <tt>/isolinux</tt> -->
 +
<!-- directory, and have a <tt>.img</tt> extension.  The "<tt>.img</tt>" extension does not -->
 +
<!-- have to be specified on the command line, but has to be explicitly -->
 +
<!-- specified if used in a "<tt>kernel</tt>" statement in <tt>isolinux.cfg</tt>. -->
 +
<!-- -->
 +
<!-- For a floppy image, the size of the image should be exactly one of the -->
 +
<!-- following: -->
 +
<!-- -->
 +
<!-- :::1,228,800 bytes        - For a 1200K floppy image -->
 +
<!-- :::1,474,560 bytes        - For a 1440K floppy image -->
 +
<!-- :::2,949,120 bytes        - For a 2880K floppy image -->
 +
<!-- -->
 +
<!-- 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. -->

Latest revision as of 04:59, 28 December 2018

This document is partially outdated. Please see ISOLINUX.
The content of doc/isolinux.txt (6.04-pre1, with minor corrections):

ISOLINUX
A bootloader for Linux using ISO 9660/El Torito CD-ROMs
Copyright 1994-2008 H. Peter Anvin - All Rights Reserved

This program is provided under the terms of the GNU General Public License, version 2 or, at your option, any later version. There is no warranty, neither expressed nor implied, to the function of this program. Please see the included file COPYING for details.


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").

This documentation isn't here yet, but here is enough that you should be able to test it out:

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.txt 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 <isoimage> \
	-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 "/" means it searches from the root directory[of the ISO 9660 filesystem]; 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. The debugging version does not include hybrid mode support (see below).


NOTE ON THE CONFIG FILE DIRECTORY

ISOLINUX will search for the config file directory in the order

  1. /boot/isolinux
  2. /isolinux
  3. /

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.

See also Syslinux configuration file


HYBRID CD-ROM/HARD DISK MODE

Starting in version 3.72, ISOLINUX supports a "hybrid mode" which can be booted from either CD-ROM or from a device which BIOS considers a hard disk or ZIP disk, e.g. a USB key or similar.

To enable this mode, the .iso image should be post-processed with the "isohybrid" script from the utils directory:

isohybrid filename.iso

This script creates the necessary additional information to be able to boot in hybrid mode. It also pads out the image to an even multiple of 1 MB.

This image can then be copied using any raw disk writing tool (on Unix systems, typically "dd" or "cat") to a USB disk, or written to a CD-ROM using standard CD burning tools.

The ISO 9660 filesystem is encapsulated in a partition (which starts at offset zero, which may confuse some systems). This makes it possible for the operating system, once booted, to use the remainder of the device for persistent storage by creating a second partition.

See also Isohybrid