Simple UKI boot setup
2026-02-10
Notes for getting Archlinux to boot nicely from a Unified Kernel Image without having to specify any UEFI boot entries or use a seperate boot loader.
PREPARATION
- Set up a proper EFI partition according to the arch wiki guide
- Set up your swap and root partitions too
- once Arch is installed (the whole mount + pacstrap + arch-chroot stuff done) continue. this example assumes your ESP mounted in /boot/
FILES TO EDIT
do this in the arch-chroot:
- run blkid to find your root partition's PARTUUID
- /etc/kernel/cmdline:
root=PARTUUID=(the partuuid you found with blkid) rw - /etc/mkinitcpio.conf:
modify the HOOKS line to add systemd, microcode and sd-vconsole:
HOOKS=(base systemd autodetect microcode modconf kms keyboard sd-vconsole block filesystems fsck) - /etc/mkinitcpio.d/linux.preset:
- uncomment the default_uki line, comment the default_image line. I usually skip fallback images too (only have 'default' in PRESETS)
- change the path in default_uki to default_uki="/boot/EFI/BOOT/BOOTx64.EFI"
(the EFI/* path is where mainboards look for things to boot. ensure your ESP is mounted correctly, in this example at /boot) - ensure the path exists: mkdir -p /boot/EFI/BOOT
- mkinitcpio -p linux
this should have created the file /boot/EFI/BOOT/BOOTx64.EFI
next, check your boot entries with efibootmgr to make sure none of them point to any eventually remaining previous linux installs.
Then reboot and enjoy your UKI.