2025-10-01 –, Main
The UAPI Boot Loader Specification defines conventions that let multiple operating systems and bootloaders share boot config files. So far, only systemd-boot implements it - and it’s UEFI-only by design.
As a result, hybrid UEFI/BIOS images require maintaining (and keeping in sync) two sets of bootloader configs: one for systemd-boot, and one for a legacy bootloader such as syslinux.
I set out to fix that by building a BIOS bootloader that uses the UAPI Boot Loader Specification - allowing both UEFI and legacy boot to use a single shared set of config files. This talk is about why that matters, how I built it, and what comes next.
In this talk, I’ll cover:
- What the UAPI boot spec is
- Why you'd want to use legacy boot instead of EFI/systemd-boot - spoiler: you don't! but you might have to
- How I implemented UAPI boot support for legacy BIOS
- What about UKIs?
- A live demo of the bootloader in action
- The current state of the project and what’s next
https://uapi-group.org/specifications/specs/boot_loader_specification
https://github.com/nkraetzschmar/bootloader
Developer @ GardenLinux, SAP
Focused on building a streamlined, security-hardened Linux for container and Kubernetes environments, with a keen interest in C programming and security.