Difference between revisions of "EXTLINUX"

From Syslinux Wiki
Jump to: navigation, search
 
m (Indented lines showed up in little "code" boxes)
Line 6: Line 6:
  
 
1. The installer is run on a *mounted* filesystem.  Run the extlinux
 
1. The installer is run on a *mounted* filesystem.  Run the extlinux
  installer on the directory in which you want extlinux installed:
+
installer on the directory in which you want extlinux installed:
  
 
         extlinux /boot
 
         extlinux /boot
  
  NOTE: this doesn't have to be the root directory of a filesystem.
+
NOTE: this doesn't have to be the root directory of a filesystem.
  If /boot is a filesystem, you can do:
+
If /boot is a filesystem, you can do:
  
 
         mkdir -p /boot/extlinux
 
         mkdir -p /boot/extlinux
 
         extlinux /boot/extlinux
 
         extlinux /boot/extlinux
  
  ... to create a subdirectory and install extlinux in it.  
+
... to create a subdirectory and install extlinux in it.  
  
  
 
2. The configuration file is called "extlinux.conf", and is expected
 
2. The configuration file is called "extlinux.conf", and is expected
  to be found in the same directory as extlinux is installed in.
+
to be found in the same directory as extlinux is installed in.
  
  
 
3. Pathnames can be absolute or relative; if absolute (with a leading
 
3. Pathnames can be absolute or relative; if absolute (with a leading
  slash), they are relative to the root of the filesystem on which
+
slash), they are relative to the root of the filesystem on which
  extlinux is installed (/boot in the example above), if relative,
+
extlinux is installed (/boot in the example above), if relative,
  they are relative to the extlinux directory.
+
they are relative to the extlinux directory.
  
  extlinux supports subdirectories, but the total path length is
+
extlinux supports subdirectories, but the total path length is
  limited to 255 characters.
+
limited to 255 characters.
  
  
 
4. EXTLINUX now supports symbolic links.  However, extremely long
 
4. EXTLINUX now supports symbolic links.  However, extremely long
  symbolic links might hit the pathname limit.  Also, please note
+
symbolic links might hit the pathname limit.  Also, please note
  that absolute symbolic links are interpreted from the root *of the
+
that absolute symbolic links are interpreted from the root *of the
  filesystem*, which might be different from now the running system
+
filesystem*, which might be different from now the running system
  would interpret it (e.g. in the case of a separate /boot
+
would interpret it (e.g. in the case of a separate /boot
  partition.)  Therefore, use relative symbolic links if at all
+
partition.)  Therefore, use relative symbolic links if at all
  possible.
+
possible.
  
  
Line 56: Line 56:
  
 
* Create a separate RAID-1 partition for /boot.  Note that the Linux
 
* Create a separate RAID-1 partition for /boot.  Note that the Linux
  RAID-1 driver can span as many disks as you wish.
+
RAID-1 driver can span as many disks as you wish.
  
 
* Install the MBR on *each disk*, and mark the RAID-1 partition
 
* Install the MBR on *each disk*, and mark the RAID-1 partition
  active.
+
active.
  
 
* Run "extlinux /boot" to install extlinux.  This will install it on
 
* Run "extlinux /boot" to install extlinux.  This will install it on
  all the drives in the RAID-1 set, which means you can boot any
+
all the drives in the RAID-1 set, which means you can boot any
  combination of drives in any order.
+
combination of drives in any order.
  
  

Revision as of 19:31, 8 August 2007

EXTLINUX - SYSLINUX for ext2/ext3 filesystems

EXTLINUX is a new syslinux derivative, which boots from a Linux ext2/ext3 filesystem.

It works the same way as SYSLINUX, with a few slight modifications.

1. The installer is run on a *mounted* filesystem. Run the extlinux installer on the directory in which you want extlinux installed:

       extlinux /boot

NOTE: this doesn't have to be the root directory of a filesystem. If /boot is a filesystem, you can do:

       mkdir -p /boot/extlinux
       extlinux /boot/extlinux

... to create a subdirectory and install extlinux in it.


2. The configuration file is called "extlinux.conf", and is expected to be found in the same directory as extlinux is installed in.


3. Pathnames can be absolute or relative; if absolute (with a leading slash), they are relative to the root of the filesystem on which extlinux is installed (/boot in the example above), if relative, they are relative to the extlinux directory.

extlinux supports subdirectories, but the total path length is limited to 255 characters.


4. EXTLINUX now supports symbolic links. However, extremely long symbolic links might hit the pathname limit. Also, please note that absolute symbolic links are interpreted from the root *of the filesystem*, which might be different from now the running system would interpret it (e.g. in the case of a separate /boot partition.) Therefore, use relative symbolic links if at all possible.


Note that EXTLINUX installs in the filesystem partition like a well-behaved bootloader :) Thus, it needs a master boot record in the partition table; the mbr.bin shipped with SYSLINUX should work well. To install it just do:

       cat mbr.bin > /dev/XXX

... where /dev/XXX is the appropriate master device, e.g. /dev/hda, and make sure the correct partition in set active.


If you have multiple disks in a software RAID configuration, the preferred way to boot is:

  • Create a separate RAID-1 partition for /boot. Note that the Linux

RAID-1 driver can span as many disks as you wish.

  • Install the MBR on *each disk*, and mark the RAID-1 partition

active.

  • Run "extlinux /boot" to install extlinux. This will install it on

all the drives in the RAID-1 set, which means you can boot any combination of drives in any order.


It is not required to re-run the extlinux installer after installing new kernels. If you are using ext3 journalling, however, it might be desirable to do so, since running the extlinux installer will flush the log. Otherwise a dirty shutdown could cause some of the new kernel image to still be in the log. This is a general problem for boot loaders on journalling filesystems; it is not specific to extlinux. The "sync" command does not flush the log on the ext3 filesystem.


The SYSLINUX series boot loaders support chain loading other operating systems via a separate module, chain.c32 (located in com32/modules/chain.c32). To use it, specify a LABEL in the configuration file with KERNEL chain.c32 and APPEND [hd|fd]<number> [<partition>]

For example:

  1. Windows CE/ME/NT, a very dense operating system.
  2. Second partition (2) on the first hard disk (hd0);
  3. Linux would *typically* call this /dev/hda2 or /dev/sda2.

LABEL cement

       KERNEL chain.c32
       APPEND hd0 2

See also README.menu.