Datasheet
“main” (Installation and Administration) — 2004/6/25 — 13:29 — page 251 — #277
i
i
i
i
i
i
i
i
10
Special Features of SUSE LINUX
10.3 Booting with the Initial RAM Disk
As soon as the Linux kernel has been booted and the root file system (/)
mounted, programs can be run and further kernel modules can be inte-
grated to provide additional functions. To mount the root file system, cer-
tain conditions must be met. The kernel needs the corresponding drivers to
access the device on which the root file system is located (especially SCSI
drivers). The kernel must also contain the code needed to read the file sys-
tem (ext2, reiserfs, romfs, etc.). If the root file system is already en-
crypted, a password is needed to mount the file system.
For the problem of SCSI drivers, a number of different solutions are pos-
sible. The kernel could contain all imaginable drivers, but this might be
a problem because different drivers could conflict with each other. Also,
the kernel would become very large because of this. Another possibility
is to provide different kernels, each one containing just one or a few SCSI
drivers. This method has the problem that a large number of different ker-
nels are required, a problem then increased by the differently optimized
kernels (Athlon optimization, SMP). The idea of loading the SCSI driver as
a module leads to the general problem resolved by the concept of an initial
RAM disk: running user space programs even before the root file system is
mounted.
10.3.1 Concept of the Initial RAM Disk
The initial RAM disk (also called initdisk or initrd) solves precisely the prob-
lems described above. The Linux kernel provides an option of having a
small file system loaded to a RAM disk and running programs there before
the actual root file system is mounted. The loading of initrd is handled
by the boot loader (GRUB, LILO, etc.). Boot loaders only need BIOS rou-
tines to load data from the boot medium. If the boot loader is able to load
the kernel, it can also load the initial RAM disk. Special drivers are not re-
quired.
10.3.2 The Order of the Booting Process with initrd
The boot loader loads the kernel and the initrd to memory and starts
the kernel. The boot loader informs the kernel that an initrd exists and
where it is located in memory. If the initrd was compressed (which is
typically the case), the kernel decompresses the initrd and mounts it as
a temporary root file system. A program called linuxrc is then started. This
251SUSE LINUX Enterprise Server










