knowledge/technology/linux/systemd/systemd-boot.md
2024-12-23 10:48:51 +01:00

89 lines
2.6 KiB
Markdown

---
obj: application
arch-wiki: https://wiki.archlinux.org/title/Systemd-boot
rev: 2024-12-17
---
# Systemd Boot
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](Systemd.md), which is installed on an Arch system by default.
It is simple to configure but can only start EFI executables such as the [Linux](../Linux.md) kernel EFISTUB, UEFI shell, GRUB, or the [Windows](../../windows/Windows.md) 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 |