An important and powerful aspect of Red Hat Enterprise Linux is the open, user-configurable method it uses for starting the operating system. Users are free to configure many aspects of the boot process, including specifying the programs launched at boot-time. Similarly, system shutdown gracefully terminates processes in an organized and configurable way, although customization of this process is rarely required.
Understanding how the boot and shutdown processes work not only allows customization, but also makes it easier to troubleshoot problems related to starting or shutting down the system.
Below are the basic stages of the boot process for an x86 system:
The system BIOS checks the system and launches the first stage boot loader on the MBR of the primary hard disk.
The first stage boot loader loads itself into memory and launches the second stage boot loader from the /boot/ partition.
The second stage boot loader loads the kernel into memory, which in turn loads any necessary modules and mounts the root partition read-only.
The kernel transfers control of the boot process to the /sbin/init program.
The /sbin/init program loads all services and user-space tools, and mounts all partitions listed in /etc/fstab.
The user is presented with a login screen for the freshly booted Linux system.
Because configuration of the boot process is more common than the customization of the shutdown process, the remainder of this chapter discusses in detail how the boot process works and how it can be customized to suite specific needs.