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

Nikolas Krätzschmar

Playlists: 'asg2025' videos starting here / audio

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/

Download

Embed

Share:

Tags