GRUB
GRUB — the GRand Unified Bootloader — is the program that sits between firmware and kernel on most of the Linux world: written by Erich Stefan Boleyn in 1995 to boot GNU Mach, adopted as the GNU project's official bootloader in 1999, and rewritten completely as GRUB 2 (the version everything now runs). It displaced LILO because it understood filesystems — you point it at a kernel file, not a hardcoded list of disk blocks.[1]
The load chain
On BIOS machines the chain is: boot.img in the MBR → core.img in the post-MBR gap → normal mode reading /boot/grub/grub.cfg. On EFI it's a single grubx64.efi in the ESP. Everything else is modules — part_gpt, part_msdos, ext2, luks, lvm, normal — loaded by insmod as the menu needs them, which is why an encrypted /boot or an exotic filesystem can still boot. grub-install writes the stages; grub-mkconfig generates the menu from /etc/default/grub and the /etc/grub.d/ drop-ins; os-prober finds other OSes for dual-boot.[2]
Why it matters here
GRUB is the handbook's bootloader of record — chapter 6 of the LFS build ends by running grub-install, and the rescue chapter's "fix boot" playbook is a GRUB playbook: insmod, set root=, linux/initrd/boot at the grub> rescue shell. Its Multiboot heritage is why kernels from Linux to BSD to hobby projects all boot the same way — the bootloader speaks a standard, not a vendor.[3]
See also
- LFS Kernel and Boot — where the build installs it
- Troubleshooting and Rescue — the rescue-shell grammar
- Inside a Linux System — where it sits in the boot chain
- Linux · Systemd · LUKS