Hey there, I’m setting up my first custom arch install, having used Opensuse/Fedora/Tuxedo in the past with grub.
For now the arch install lives in a QEMU playground, but should eventually share an esp with Windows and Tuxedo. (I plan to shift Tuxedo from Grub to systemd-boot beforehand though)
For a this new setup, I’ve chosen systemd-boot and mkinitcpio with linux-lts. I’ve got the loader configs for sd-boot working with some trial&error. The default preset in mkinitcpio is still not doing what I want though.
Part of this is just me not understanding mountpoints in Arch. I’m used to the esp being mounted to “/boot/efi” with kernels and ramdisks living in something like “boot/efi/arch/{kernelver}-{kernelname}/kernel.img” and executables/UKIs living in “/boot/efi/EFI/Linux/arch/uki.efi”. It seems that packages for kernels and ucode are hardcoded to the esp being at “/boot”. Which does mess with me, but so be it. Mkinitcpio also has a disabled preset to put UKIs in “/efi”, a mountpoint I have never seen used. Given that it references an “EFI”-folder in there, this seems to also want to be the esp-root.
Could someone explain the mountpoint setup in arch to me? And also, is there a point/way to bend the paths to use /boot/efi, or am I better served to just mount the esp at /boot and accept the difference?
Thanks in advance.


I just ended up using UKIs with a manual path in the preset. Files are still but in the root partition but they are only used at build-time, so I don’t care.