Community Tutorials Arch / Manjaro How to Set Up systemd-boot on Arch Linux
How to Set Up systemd-boot on Arch Linux
ARCH / MANJARO

How to Set Up systemd-boot on Arch Linux

SKYLINE Knowledge Base
Photo by Goran Ivos on Unsplash

A field-tested, step-by-step guide. How to Set Up systemd-boot on Arch Linux — prerequisites, the actual commands, verification, and links to related Arch / Manjaro topics.

systemd-boot is the lightweight bootloader bundled with systemd. On Arch + UEFI, it replaces GRUB with about ten lines of config. Fast, predictable, no Turing-complete config language.

Prerequisites

  • A UEFI Arch Linux system (not BIOS — GRUB is the answer there).
  • An EFI System Partition (ESP) at /boot or /efi. The Arch wiki recommends mounting it at /efi but /boot is the common default.
  • Root or sudo access.

Step 1: Confirm UEFI

ls /sys/firmware/efi/efivars      # should exist
bootctl status                    # shows firmware + boot entries

If the directory is empty, you booted in BIOS mode and need GRUB instead.

Step 2: Install the bootloader

sudo bootctl install

That copies the bootloader to the ESP and writes an EFI boot entry.

Step 3: Loader configuration

/boot/loader/loader.conf:

default arch.conf
timeout 3
console-mode max
editor no

editor no is important — without it any local user can edit kernel cmdline at the boot menu and pop a shell. Always disable for production.

Step 4: Boot entries

/boot/loader/entries/arch.conf:

title    Arch Linux
linux    /vmlinuz-linux
initrd   /intel-ucode.img
initrd   /initramfs-linux.img
options  root=UUID=AAAAAAAA-BBBB-CCCC-DDDD-EEEEEEEEEEEE rw quiet

Find your root UUID:

blkid /dev/nvme0n1p2
# or
lsblk -f

For AMD CPUs replace intel-ucode.img with amd-ucode.img.

A fallback entry pinned to the older initramfs is good insurance:

/boot/loader/entries/arch-fallback.conf:

title    Arch Linux (fallback)
linux    /vmlinuz-linux
initrd   /intel-ucode.img
initrd   /initramfs-linux-fallback.img
options  root=UUID=AAAAAAAA-BBBB-CCCC-DDDD-EEEEEEEEEEEE rw

Step 5: Auto-update the bootloader

When the systemd package updates, your bootloader binaries on the ESP do not — until you tell them to. Install the pacman hook:

sudo mkdir -p /etc/pacman.d/hooks
sudo tee /etc/pacman.d/hooks/95-systemd-boot.hook <<'EOF'
[Trigger]
Type = Package
Operation = Upgrade
Target = systemd

[Action]
Description = Updating systemd-boot
When = PostTransaction
Exec = /usr/bin/bootctl update
EOF

Now bootctl update fires automatically after every pacman -Syu that bumps systemd.

Step 6: Verify the boot menu

Reboot once and confirm the menu shows the entries. To pick a non-default temporarily, press space during the timeout.

sudo bootctl list             # show all entries
sudo bootctl status           # full status incl. firmware vars

Verify

bootctl status | head -30
ls /boot/loader/entries/
cat /etc/pacman.d/hooks/95-systemd-boot.hook

Conclusion

systemd-boot is the right call on any UEFI Arch box you do not need GRUB's features (multi-boot menu painting, ZFS root, GRUB scripting). Ten lines of config, a pacman hook, and you are done.

Next steps

SKYLINE Engineering

@skyline

The engineering team at SKYLINE Industrial Solutions. We publish field-tested guides drawn from real KSA and GCC deployments.

See author profile
SKYLINE engineering services

Need this implemented for you?

Reading is free — building it right takes a team. SKYLINE engineers ship Arch / Manjaro for Aramco vendors, banks, hospitals and government agencies across Saudi Arabia. Talk to us before you start.

Aramco Approved Contractor ISO 9001 · ISO 27001 SAMA CSF aligned NCA ECC ready 247+ KSA clients

Comments

0 total · 0 threads
Be the first to leave a comment.