For over two decades, GRUB (Grand Unified Bootloader) has served as the default bootloader across Ubuntu distributions. While GRUB is feature-rich, supporting complex multi-boot environments, legacy BIOS systems, and diverse filesystem drivers, its monolithic architecture often introduces unnecessary complexity, slow boot initialization, and convoluted configuration scripts (/etc/default/grub and update-grub) on modern, pure-UEFI server infrastructure.
systemd-boot (formerly known as Gummiboot) is a minimalist, high-speed UEFI boot manager integrated directly into the systemd ecosystem. Designed exclusively for modern UEFI motherboards, systemd-boot executes native EFI kernel stubs directly from the EFI System Partition (ESP), eliminating secondary boot stages and reducing boot times to a fraction of a second on Ubuntu Server.
Why Consider systemd-boot Over GRUB?
Comparing systemd-boot to conventional GRUB reveals significant architectural advantages for pure UEFI systems:
- Minimalist Codebase: systemd-boot does not contain filesystem drivers or complex command interpreters. It relies entirely on native UEFI firmware services to load the kernel and initial ramdisk (initrd).
- Modular Configuration: Instead of generating massive, nested script files, systemd-boot uses straightforward drop-in text files conforming to the Boot Loader Specification (BLS) inside
/boot/efi/loader/entries/. - Rapid Boot Execution: Eliminates GRUB’s multi-second menu processing, handing execution directly to the Linux kernel immediately upon firmware handoff.
- Integrated Diagnostics: Managed via the unified
bootctlcommand-line utility.
Prerequisites and Firmware Verification
systemd-boot requires a native UEFI motherboard environment. Before proceeding, confirm that your Ubuntu installation is booted in UEFI mode:
# Check for EFI runtime variables directory
ls /sys/firmware/efi/efivars
If the directory exists and lists EFI variable files, your system is running in UEFI mode. Ensure your EFI System Partition (ESP) is mounted at /boot/efi or /boot.
Installing systemd-boot Using bootctl
To install systemd-boot’s EFI binaries onto your EFI System Partition:
# Install systemd-boot into the ESP and register UEFI NVRAM boot entries
sudo bootctl install
The utility copies systemd-bootx64.efi into /boot/efi/EFI/systemd/ and creates the configuration directory structure inside /boot/efi/loader/.
Configuring the Master Loader Configuration
Configure the default loader behaviour by editing /boot/efi/loader/loader.conf:
sudo nano /boot/efi/loader/loader.conf
Add the following configuration directives:
# Master loader configuration
default ubuntu.conf
timeout 3
console-mode max
editor no
Directives explained:
default ubuntu.conf: Specifies the default boot entry file to load.timeout 3: Displays the boot menu for 3 seconds before automatically booting (set to0for instant headless boot).editor no: Disables interactive command-line editing at boot to prevent unauthorized parameter modifications.
Creating a Boot Loader Specification (BLS) Entry
Each kernel installed on your system requires a modular entry file inside /boot/efi/loader/entries/. Ensure your active kernel (vmlinuz) and initramfs (initrd.img) reside on the EFI partition:
# Copy current kernel and initramfs to the EFI partition
sudo cp /boot/vmlinuz-$(uname -r) /boot/efi/vmlinuz
sudo cp /boot/initrd.img-$(uname -r) /boot/efi/initrd.img
Create the entry configuration file:
sudo nano /boot/efi/loader/entries/ubuntu.conf
Populate the entry with your root filesystem’s UUID (retrieve this using blkid):
title Ubuntu Server 24.04 LTS
linux /vmlinuz
initrd /initrd.img
options root=UUID=YOUR-ROOT-PARTITION-UUID-HERE ro quiet splash
Verifying Boot Entries with bootctl status
Before rebooting, verify your boot configuration using the bootctl status diagnostic check:
sudo bootctl status
The tool reports current firmware architecture, the mounted ESP path, installed binary versions, and validates that ubuntu.conf is recognized as a valid boot entry.
Transitioning to systemd-boot provides modern Ubuntu systems with a clean, modular, and exceptionally fast boot process free of legacy bootloader overhead.