启动组件和根文件系统探测#
The recommended way to boot a systemd based
UEFI system consists primarily of three
components:
A boot loader, i.e.
systemd-bootthat provides interactive and programmatic control of what precisely to boot. It takes care of enumerating all possible boot targets (implementing the UAPI.1 Boot Loader Specification), potentially presenting it to the user in a menu, but otherwise picking an item automatically, implementing boot counting and automatic rollback if desired.A UAPI.5 Unified Kernel Image (“UKI”), i.e. an UEFI PE executable that combines
systemd-stub, a Linux kernel, and an initial RAM disk ("initrd") into one. UKIs are self-descriptive: the aforementioned boot loader enumerates these UKIs and automatically extracts all information necessary to determine which menu entries to generate for them. Within the UKI runtime (very early during kernel initialization) the transition from the UEFI firmware code to the Linux code takes place, i.e. it executes the fundamentalExitBootServices()UEFI call that ends PC firmware control, and lets the Linux kernel take over.