A Linux boot loader’s core functionality includes the ability to do the follow:
- Select from multiple kernels
- Switch between sets of kernel parameters
- Allow the user to manually override and edit kernel image names and parameters
- Provide support for booting other operating systems
A near-universal standard on Linux systems, with BIOS/MBR and UEFI versions
One of the first Linux boot loaders. ELILO is a UEFI version.
Can be configured to run from many different kinds of filesystems.
Boots a kernel from MS-DOS.
A simple UEFI boot manager.
A high-performance replacement for the PC BIOS that can include a kernel.
- Linux Kernel EFISTUB
A kernel plug-in for loading hte kernel directly from EFI/UEFI System Partition (ESP).
A UEFI boot loader intended to serve as a model and reference for other UEFI boot loaders.
How GRUB Works
- The PC BIOS or firmware initializes the hardware and searches its boot-order storage devices for boot code
- Upon finding the boot code, the BIOS/firmware loads and executes it. GRUB begins.
- The GRUB core loads.
- The core initializes. At this point, GRUB can now access disks and filesystems.
- GRUB identifies its boot partition and loads a configuration there.
- GRUB gives the user a chance to change the configuration.
- After a timeout or user action, GRUB executes the sequence of commands in the grub.cfg file.
- In the course of executing the configuration, GRUB may load additional modules in the boot partitions. Some of these modules may be preloaded.
- GRUB executes a boot command to load and execute the kernel as specified by the configuration’s linux command.
Where is the GRUB core?
- Partially stuffed between MBR and the beginning of the first partition
- In a regular partition
- In a special boot partition: a GPT boot partition, ESP, or elsewhere