Arch + Ubuntu Dual-Boot with systemd-boot
I recently wanted to discover Arch Linux and install it next to my Ubuntu in my homelab system. During the setup, I had problems with the bootloader. After some research and testing, I learned that using systemd-boot is the best way to manage both systems when they share the same EFI partition. This guide explains step by step how I fixed the issue.
1. Check EFI Partition
Both Arch and Ubuntu must use the same EFI partition, mounted at /boot/efi.
- Arch puts kernel files (
vmlinuz-linux,initramfs-linux.img, etc.) inside/boot/efi. - Ubuntu keeps kernel files in
/bootand makes Boot Loader Specification (BLS) entries in/boot/efi/loader/entries/.
2. Install systemd-boot
In Ubuntu, run:
sudo bootctl install
sudo bootctl update
Check if it works:
sudo bootctl status
You should see Linux Boot Manager in the list.
3. Set Boot Order
List EFI entries:
sudo efibootmgr
Example:
Boot0000* Linux Boot Manager
Boot0002* ubuntu
Make Linux Boot Manager the default:
sudo efibootmgr -o 0000,0002
4. Loader Configuration
Edit /boot/efi/loader/loader.conf:
default arch.conf
timeout 5
console-mode max
default arch.conf→ boots Arch first.timeout 5→ menu shows for 5 seconds.console-mode max→ best resolution.
5. Ubuntu Boot Entry
Ubuntu makes its own entry in:
/boot/efi/loader/entries/
Example file:
title Ubuntu 24.04.3 LTS
version 6.8.0-71-generic
options root=UUID=<ubuntu-root-uuid> ro
linux /UUID-boot-partition/6.8.0-71-generic/linux
initrd /UUID-boot-partition/6.8.0-71-generic/initrd.img-6.8.0-71-generic
Systemd-boot will detect this automatically.
6. Arch Boot Entry
Create /boot/efi/loader/entries/arch.conf:
title Arch Linux
linux /vmlinuz-linux
initrd /intel-ucode.img
initrd /initramfs-linux.img
initrd /initramfs-linux-fallback.img
options root=UUID-root-partition rw
Replace UUID-root-partition with your Arch root UUID (find it with blkid).
7. Reboot and Test
Update systemd-boot:
sudo bootctl update
Restart your computer. Now you should see the systemd-boot menu with:
- Arch Linux (default)
- Ubuntu 24.04.3 LTS
Summary
- One EFI partition is used for both Arch and Ubuntu.
systemd-bootmanages the boot menu.- Ubuntu entry is created automatically.
- Arch entry must be created manually.
loader.confcontrols which system boots first and the menu timeout.