- GRUB
systemd-boot
systemd-boot is used for UEFI systems on x86_64 and arm64.
Note: When upgrading from earlier Talos versions, the existing bootloader is retained.
Prior to Talos 1.10, GRUB was the default for all systems except SecureBoot images, which used systemd-boot.
To check the current bootloader:
systemd-boot
systemd-boot is the default bootloader for UEFI systems on x86_64 and arm64.
It is a lightweight boot manager from the systemd project, designed for simplicity and speed.
Talos boots via UKI (Unified Kernel Image), a single binary containing the kernel, initramfs, and kernel command line arguments.
The UKI may include multiple profiles with different kernel arguments, such as regular boot and wiping mode.
These profiles are displayed in the systemd-boot menu.
Partition layout for systemd-boot:
EFI: Contains thesystemd-bootbootloader and Talos UKIs.
EFI partition is automatically detected by the system firmware.
Since UKIs are EFI binaries, they can also be booted directly from the EFI shell or firmware boot menu, including HTTP boot.
With systemd-boot, the .machine.install.extraKernelArgs field in the machine configuration is ignored, as kernel arguments are embedded in the UKI and cannot be modified without upgrading the UKI.
GRUB
GRUB boots Talos usingvmlinuz, initramfs, and kernel arguments stored in its configuration file.
Note: GRUB was previously used for UEFI systems but is no longer used for new installations starting with Talos 1.10.Partition layout for GRUB:
- MBR (Master Boot Record): Contains the initial boot code.
BIOS: Contains the GRUB bootloader.EFI: Contains the GRUB bootloader for UEFI systems (only for upgrades from earlier Talos versions).BOOT: Contains the GRUB configuration file and Talos boot assets (vmlinuz,initramfs).
.machine.install.extraKernelArgs field in the machine configuration can be used to modify these arguments, followed by an upgrade.
Controlling Kernel Command Line Behavior
Starting from Talos v1.12, you can control how GRUB determines the kernel command line using the.machine.install.grubUseUKICmdline machine configuration option.
When grubUseUKICmdline is set to true, GRUB will use the kernel command line
embedded in the Unified Kernel Image (UKI) that was generated during Talos image creation.
This behavior makes it easier to customize kernel parameters when generating boot assets.
When set to false, GRUB will ignore the UKI-provided kernel command line and instead
construct its own command line based on Talos defaults and configuration (the legacy behavior).
For existing installations upgrading to v1.12, this option will default to false to preserve the legacy behavior.