siderolabs / talos

Talos Linux is a modern Linux distribution built for Kubernetes.
https://www.talos.dev
Mozilla Public License 2.0
6.45k stars 514 forks source link

Switch to systemd-boot on UEFI systems #8062

Open smira opened 9 months ago

smira commented 9 months ago

Rationale

GRUB has issues with booting bigger images, and not really transparent development process.

systemd-boot is a better bootloader in every sense, but it only suppors UEFI systems.

Proposal

Stop using GRUB on UEFI systems for new Talos installs in 1.7+, use systemd-boot instead.

We already have systemd-boot support for SecureBoot systems.

We don't want yet to support switching to systemd-boot on ugprade.

We can either build unsigned UKI, or use loader.conf and separate kernel/initramfs files.

Problems

  1. Should we ship now multiple flavors of the same image? E.g. ISO with GRUB BIOS, ISO with systemd-boot/UEFI, ISO SecureBoot? Metal image BIOS/GRUB + UEFI/systemd-boot?

  2. If using UKI, what are the contents of the installer image? Should it contain kernel/initramfs or UKI? or both?

  3. What about arm64 SBCs?

dsseng commented 6 months ago

Thought about problem 1: I'm currently researching an approach based on using U-Boot as a UEFI compatibility layer on BIOS platforms. Fedora developers have also started implementing this in their way of deprecating BIOS.

If we can handle support that way I could also research direct EFISTUB/UKI boot from the UEFI firmware (or U-Boot providing boot services) as a great option for VMs (perhaps not as good for metal due to some firmware quirks and limited NVRAM endurance).

frezbo commented 6 months ago

no u-boot please, it's a mess of a code base, would rather just support native bios

smira commented 6 months ago

the problem with U-Boot on BIOS systems would be that we still need to load it, before we get UEFI, so either way BIOS would be a snowflake