Product SiteDocumentation Site

F.3. The Boot Loader

F.3.1. The GRUB2 boot loader for x86 systems

The system loads GRUB2 into memory, as directed by either a first-stage bootloader in the case of systems equipped with BIOS, or read directly from an EFI System Partition in the case of systems equipped with UEFI.
GRUB2 has the advantage of being able to read a variety of open filesystems, as well as virtual devices such as mdadm RAID arrays and LVM .
GRUB2 mounts a designated partition and load its configuration file — /boot/grub2/grub.cfg (for BIOS) or /boot/efi/EFI/redhat/grub.cfg (for UEFI) — at boot time. Refer to Section E.7, “GRUB Menu Configuration File” for information on how to edit this file.
Once the second stage boot loader is in memory, it presents the user with a graphical screen showing the different operating systems or kernels it has been configured to boot (when you update the kernel, the boot loader configuration file is updated automatically). On this screen a user can use the arrow keys to choose which operating system or kernel they wish to boot and press Enter. Typically, if no key is pressed, the boot loader loads the default selection after a configurable period of time has passed.
Once the second stage boot loader has determined which kernel to boot, it locates the corresponding kernel binary in the /boot/ directory. The kernel binary is named using the following format — /boot/vmlinuz-<kernel-version> file (where <kernel-version> corresponds to the kernel version specified in the boot loader's settings).
The bootloader is also used to pass arguments to the kernel it loads. This allows the system to operate with a specified root filesystem, enable or disable kernel modules and system features, or configure booting to a specific runlevel. For instructions on using the boot loader to supply command line arguments to the kernel, refer to Appendix E, The GRUB Boot Loader. Specific kernel parameters are described in /usr/share/doc/kernel-doc-*/Documentation/kernel-parameters.txt, which is provided by the kernel-doc package. For information on changing the target at the boot loader prompt, refer Section E.8, “Changing Target Environment at Boot Time”.
The boot loader then places one or more appropriate initramfs images into memory. The initramfs is used by the kernel to load drivers and modules necessary to boot the system.
Once the kernel and the initramfs image(s) are loaded into memory, the boot loader hands control of the boot process to systemd.
For a more detailed overview of the GRUB2 boot loader, refer to Appendix E, The GRUB Boot Loader.