Switching systemd-boot to GRUB on Archlinux

Posted on Thu 14 August 2025 in linux

I intend to use BTRFS snapshots, snapper and pac-snap to be able to rollback archlinux if an update goes wrong. However current it uses systemd-boot and the tools I intend to use required GRUB.

Requirements

This tutorial is only meant for UEFI systems. It requires a EFI partition mounted under /boot with enough disk space (in my case 512 MB should be enough).

Install efibootmgr to validate changes

Swapping to GRUB with BTRFS support

Install grub and run

grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB

Edit the file /etc/default/grub and copy over the relevant fields from the systemd boot loader usually found under /boot/loader/entries/arch.conf

For instance if your systemd-boot config looks like this

title   Arch Linux
linux   /vmlinuz-linux
initrd  /intel-ucode.img
initrd  /initramfs-linux.img
options cryptdevice=UUID=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx:crypt root=/dev/mapper/crypt rootflags=subvol=arch_root splash rw

You need to copy options field to GRUB_CMDLINE_LINUX but do not copy root

Then generate the GRUB configuration grub-mkconfig -o /boot/grub/grub.cfg and check the content of the file.

For more articles about Linux the following RSS feed is available over here.