GRUB, systemd-boot, and Other Bootloaders

Updated

October 30, 2026

GRUB, systemd-boot, and Other Bootloaders

The bootloader bridges firmware and the Linux kernel. When engineering a distribution, you must choose a bootloader that matches your system architecture and hardware compatibility requirements.

+-------------------------------------------------------------+
|                     Bootloader Comparison                   |
|                                                             |
| Feature            GRUB 2               systemd-boot        |
| ----------------------------------------------------------- |
| Architecture       Modular Mini-OS      Minimal UEFI stub   |
| Firmware Support   BIOS + UEFI          UEFI Only           |
| Filesystem Drivers ext4, btrfs, zfs     FAT32 / ESP only    |
| Config Complexity  Complex (grub.cfg)   Trivial drop-in .conf|
| Binary Size        ~10 MB               ~100 KB             |
| Scripting Engine   Full POSIX-like sh   None                |
+-------------------------------------------------------------+

GRUB 2 (Grand Unified Bootloader)

GRUB 2 is the most powerful and versatile bootloader in the Linux ecosystem.

Key Capabilities:

  • Operates as a mini-operating system with its own memory management, terminal emulator, graphics engine, and dynamic modules (.mod).
  • Understands complex filesystems directly. GRUB can load a kernel located inside a software RAID (mdadm), LVM volume group, encrypted LUKS container, or Btrfs subvolume.
  • Supports both legacy BIOS (i386-pc) and 32/64-bit UEFI (x86_64-efi, i386-efi, arm64-efi).

GRUB Configuration (grub.cfg)

# /boot/grub/grub.cfg
set timeout=5
set default=0

menuentry "BYOL Linux (Rolling)" {
    insmod gzio
    insmod part_gpt
    insmod ext2
    search --no-floppy --fs-uuid --set=root a4b2-8c11-deadbeef
    linux /boot/vmlinuz-byol root=UUID=a4b2-8c11-deadbeef rw quiet console=tty0
    initrd /boot/initramfs-byol.img
}

systemd-boot (Formerly Gummiboot)

If your distribution targets modern UEFI systems exclusively, systemd-boot offers clean, minimalist elegance: - It relies entirely on the UEFI firmware’s built-in FAT32 filesystem driver. - It contains no filesystem drivers or scripting engines. It simply presents a menu of boot entries and invokes the kernel using the UEFI EFISTUB protocol.

Boot Loader Specification (BLS)

systemd-boot complies with the standard Boot Loader Specification. Adding a new kernel requires dropping a small .conf file into /boot/loader/entries/:

# /boot/loader/entries/byol-6.10.conf
title   BYOL Linux
version 6.10.2
linux   /vmlinuz-6.10.2
initrd  /initramfs-6.10.2.img
options root=UUID=23b49e8a-1209 rw quiet

Other Notable Bootloaders

  • Syslinux / Isolinux: Extremely popular for generating bootable live CDs and hybrid ISO images due to its tiny footprint and robust El Torito emulation.
  • Limine: A modern, high-performance, open-source bootloader supporting BIOS, UEFI, and advanced protocols.
  • U-Boot (Universal Boot Loader): The undisputed standard bootloader for embedded ARM boards, Raspberry Pi, and RISC-V development platforms.