Linux Booting Process

The booting process for Red Hat Enterprise Linux 7/8/9 (RHEL 7/8/9) is similar to the general Linux booting procedure but includes some specific components and differences. Here’s a detailed explanation of the booting process for RHEL 7/8/9:

Power-on Self-Test (POST):
Just like any other computer system, the boot process begins with the Power-on Self-Test (POST) where the system’s firmware (UEFI or BIOS) checks the hardware components for basic functionality.

Bootloader Stage (GRUB2):
After the POST completes successfully, the firmware searches for a bootable device and loads the first-stage bootloader, which is GRUB2 for RHEL 7/8/9, from the EFI System Partition (ESP). GRUB2 presents the boot menu (if multiple operating systems are installed) and allows you to choose the kernel or entry to boot.

Linux Kernel Loading:
Once you select the kernel entry in the GRUB2 menu, GRUB2 loads the selected kernel into memory. The kernel is usually stored in the /boot directory, and on RHEL 7/8/9, it is named something like vmlinuz-.

Initramfs (Initial RAM Filesystem):
RHEL 7/8/9 uses an initramfs (initial RAM filesystem) to handle early user-space initialization and provide essential device drivers and tools needed to mount the real root filesystem. The initramfs is loaded into memory along with the kernel.

Kernel Initialization:
The kernel takes control of the boot process and starts the initialization procedure. It sets up memory management, detects and initializes hardware devices, and mounts the initramfs as the root filesystem.

Dracut:
Dracut is the tool used in RHEL 7/8/9 to generate the initramfs. It is responsible for assembling the initial RAM filesystem, which includes the necessary kernel modules, drivers, and other essential files to ensure a successful boot.

Real Root Filesystem Mounting:
Once the initramfs is mounted as the root filesystem, the kernel proceeds to locate and mount the real root filesystem. The real root filesystem is specified in the GRUB2 configuration and is usually an Ext4 filesystem.

SELinux:
RHEL 7/8/9 incorporates SELinux (Security-Enhanced Linux) as its default security mechanism. During the boot process, SELinux performs integrity checks on various system components and labels the files and processes with the appropriate security contexts.

Systemd Initialization:
RHEL 7/8/9 uses systemd as its init system. systemd is responsible for starting and managing system services and daemons. It starts the services defined in the default target (usually multi-user.target) or any other target specified during boot.

Target Initialization:
Systemd introduces the concept of “targets” that define various system states. Each target represents a predefined set of services and daemons that should be running in that specific state. The default target “multi-user.target” corresponds to the traditional runlevel 3, which is a text-based multi-user mode.

Login Prompt / Graphical User Interface (GUI):
After completing all the necessary initializations and starting the services, RHEL 7/8/9 displays the login prompt (if it’s in text mode) or the graphical login screen (if it’s using a graphical user interface).

User Login and System Operation:
Once the login prompt or graphical login screen is displayed, users can log in with their credentials, and the system becomes fully operational, ready to run applications and services.

This is an overview of the RHEL 7/8/9 booting process, highlighting the key steps and components specific to this enterprise Linux distribution.