Although boot loaders tend to be very small and relatively simple, they play a critical role in the boot process. Visit just about any Linux-related forum and the chances that you’ll come across at least a few people asking how to fix a problem with a boot loader are high. To avoid problems with boot loaders, it’s paramount to understand what role they play in the boot process and what the most popular Linux boot loaders are.
A boot loader is a program responsible for loading the Linux kernel with optional kernel parameters and the Linux initial RAM disk, known as initrd. Linux kernel is the core of the Linux operating system, and it starts the init (short for initialization) process, or an init replacement such as systemd, immediately after being loaded. The Linux initial RAM disk provides a temporary storage space for loading critical files into memory before the real root file system can be mounted.
On older computers with BIOS (Basic Input/Output System), a boot loader resides in the MBR (Master Boot Record), which occupies the first 512 bytes on a disk, but newer computers with UEFI (Unified Extensible Firmware Interface) store it in a special partition called EFI System Partition.
A boot loader is loaded by BIOS or UEFI after a successful POST (Power-On Self-Test), which is a self-test process performed immediately after a computer or other digital electronic device is powered on.
Most Popular Linux Boot Loaders
There are several boot loaders from which Linux users can choose.
GRUB is the most popular and the most feature-packed boot loader for the Linux operating system. It is based on the now obsolete GRUB Legacy, which was created in 1995 by Erich Boleyn for the operating system GNU/Hurd. GRUB supports both BIOS and UEFI, and it can handle all popular Linux file systems, including Btrfs, ext4, ReiserFS v3, VFAT, and XFS. Compared to GRUB Legacy, modern GRUB is cleaner, more powerful, and safer.
LILO once used to be the most popular Linux boot loader, but it has gradually fallen from grace because it lacked support for multi-boot environments. The development of LILO was stopped in December 2015, and the limited support for modern file systems and non-existing support for UEFI both reflect this reality.
SYSLINUX is a collection of several lightweight boot loaders that support most major file systems, including FAT for MS-DOS, and ext2, ext3, ext4 for Linux. SYSLINUX can also handle Btrfs and XFS but only with some restrictions. SYSLINUX is commonly used for booting live distributions of the Linux operating system. The original SYSLINUX can boot from floppy disks and USB drives, and ISOLINUX, which is part of the SYSLINUX Project, can boot from CD-ROM ISO 9660 filesystems.
A boot loader is a critical piece of software that’s responsible for loading the Linux kernel and the Linux initial RAM disk. Linux users can choose from several different boot loaders, each with its own strengths and weaknesses.