Systemd Boot
2 min read
systemd-boot is a simple UEFI boot manager which executes configured EFI images. The default entry is selected by a configured pattern (glob) or an on-screen menu to be navigated via arrow keys. It is included with systemd, which is installed on an Arch system by default.

It is simple to configure but can only start EFI executables such as the Linux kernel EFISTUB, UEFI shell, GRUB, or the Windows Boot Manager.

Install
Install:
shell
bootctl install [--esp-path=PATH]

Update:
shell
bootctl update

Update seed file:
shell
bootctl random-seed

See status:
shell
bootctl status

# List entries
bootctl list

Configuration
The loader configuration is stored in the file _esp_/loader/loader.conf.

Example:
default arch.conf
timeout 4
console-mode max
editor no

Adding loaders
systemd-boot will search for boot menu items in _esp_/loader/entries/*.conf.

Values:
• title : Name
• version : Kernel Version
• efi : EFI Executable
• options : Kernel Parameter

Example: _esp_/loader/entries/arch.conf
title Arch Linux
linux /vmlinuz-linux
initrd /intel-ucode.img
initrd /initramfs-linux.img
options root="LABEL=_arch_os_" rw

Changing Boot
Choosing next boot:
shell
systemctl reboot --boot-loader-entry=arch-custom.conf

Firmware Setup:
shell
systemctl reboot --firmware-setup

Keybindings
While the menu is shown, the following keys are active:

KeyDescription
Up / DownSelect menu entry
EnterBoot the selected entry
dselect the default entry to boot (stored in a non-volatile EFI variable)
t / Tadjust the timeout (stored in a non-volatile EFI variable)
eedit the option line (kernel command line) for this bootup to pass to the EFI image
Qquit
vshow the systemd-boot and UEFI version
Pprint the current configuration to the console