You may notice that the bootdisks used by major distributions such as Slackware, RedHat or Debian, seem more sophisticated than what is described in this document. Professional distribution bootdisks are based on the same principles outlined here, but employ various tricks because their bootdisks have additional requirements. First, they must be able to work with a wide variety of hardware, so they must be able to interact with the user and load various device drivers. Second, they must be prepared to work with many different installation options, with varying degrees of automation. Finally, distribution bootdisks usually combine installation and rescue capabilities.
Some bootdisks use a feature called initrd (initial
ramdisk).
This feature was introduced
around 2.0.x and allows a kernel to boot in two phases. When the kernel
first boots, it loads an initial ramdisk image from the boot disk. This
initial ramdisk is a root filesystem containing a program that runs before
the real root fs is loaded. This program usually inspects the environment
and/or asks the user to select various boot options, such as the device
from which to load the real rootdisk. It typically loads additional
modules not built in to the kernel. When this initial program exits, the
kernel loads the real root image and booting continues normally. For
further information on initrd
, see
/usr/src/linux/Documentation/initrd.txt and
ftp://elserv.ffm.fgan.de/pub/linux/loadlin-1.6/initrd-example.tgz
The following are summaries of how each distribution's installation disks seem to work, based on inspecting their filesystems and/or source code. We do not guarantee that this information is completely accurate, or that they have not changed since the versions noted.
Slackware (v.3.1) uses a straightforward LILO boot similar to what is
described in section
Transferring the kernel with LILO. The Slackware bootdisk prints a bootup message (``Welcome to the
Slackware Linux bootkernel disk!
'') using LILO's message
parameter.
This instructs the user to enter a boot parameter line if necessary. After
booting, a root filesystem is loaded from a second disk. The user invokes a
setup
script which starts the installation. Instead of using a modular
kernel, Slackware provides many different kernels and depends upon the user to
select the one matching his or her hardware requirements.
RedHat (v.4.0) also uses a LILO boot. It loads a compressed ramdisk on the
first disk, which runs a custom init
program. This program queries for
drivers, and loads additional files from a supplemental disk if necessary.
Debian (v.1.3) is probably the most sophisticated of the installation disk
sets. It uses the SYSLINUX loader to arrange various load options, then
uses an initrd
image to guide the user through installation.
It appears to use both a customized init
and a customized shell.