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:
| Key | Description |
|---|---|
Up / Down | Select menu entry |
Enter | Boot the selected entry |
d | select the default entry to boot (stored in a non-volatile EFI variable) |
t / T | adjust the timeout (stored in a non-volatile EFI variable) |
e | edit the option line (kernel command line) for this bootup to pass to the EFI image |
Q | quit |
v | show the systemd-boot and UEFI version |
P | print the current configuration to the console |