conference logo

Playlist "All Systems Go! 2025"

One Boot Config to Rule Them All: Bringing UAPI Boot Specification to Legacy BIOS

Nikolas Krätzschmar

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

Licensed to the public under https://creativecommons.org/licenses/by/4.0/de/