Skip to content

Change releng bootloader from GRUB to systemd-boot

While using GRUB as the UEFI boot loader has reduced the size of the ISO (#63 (closed)), it has brought nothing but pain otherwise:

  • We cannot use gfxterm since it is not visible on some hardware (#212 (closed)).
  • GRUB has a a strange and nonsensical limitation where the EFI binary can be built with either support for shim or custom Secure Boot key support, but not both. This means you cannot repack the ISO to use shim + MOK since we currently use --disable-shim-lock to provide support for setups with custom keys.
  • GRUB's EFI binary needs to be built with grub-mkstandalone instead of there being a ready made EFI binary in the package. This requires having grub installed on the host system which affects reproducibility (#35 (closed)).

File system transposition for UEFI systems can now be achieved using the archisosearchuuid= boot parameter (archlinux/mkinitcpio/mkinitcpio-archiso!48 (merged)), so we are not bound to GRUB anymore.

This will increase the size of the ISO since systemd-boot cannot boot files from other volumes 😢 , i.e. the kernel and initramfs will need to be duplicated in the EFI system partition (the second partition made from efiboot.img). But since we do not claim to have an ISO that fits a CD (#144 (closed)), this should not be a too big of a concern... for now.

Edited by nl6720
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information