这个项目能做什么

sd-boot 使用 systemd 的 kernel-install 将 Linux 内核和 EFI 程序安装到启动分区。根据 README,这提供了一种系统化的方式来安装或移除启动分区中的可启动软件。 kernel-install 使用 $BOOT 来指代该分区或其挂载点,通常挂载在 /efi 或 /boot。README 指出了两种推荐的布局:将 ESP 挂载在 /efi,并在 /boot 上使用可选的 XBOOTLDR 分区(这是 kernel-install 的推荐方式),或者将 ESP 挂载在 /boot。sd-boot 和 kernel-install 都支持这两种方式,但项目更倾向于第一种。 该项目提供了 pacman ALPM 钩子,用于在内核包安装、更新或移除时安装或移除内核和 EFI 工具;由这些钩子触发的安装程序;供管理员直接重新安装或移除内核的命令行工具;以及用于非 UKI 内核的加载器条目和 EFI 工具的 kernel-install 插件。安装内核意味着将镜像放置在 $BOOT 分区中以便能够启动,因此内核包应将内核镜像仅放置在 /usr 中,可启动的 EFI 工具(如 edk2-shell 和 memtest86+)也应如此。 文档以 HTML 和 PDF 格式安装在 /usr/share/sd-boot/docs 下,也可在 readthedocs 上获取。包含 sd-boot-efifs-update、sd-boot-efi-tool-update、sd-boot-find-boot-mounts 和 sd-boot-kernel-update 的手册页。 README 描述了编码标准:功能测试、使用 clang-tidy 等工具的静态分析、-fanalyzer 等编译器分析、在 valgrind 下干净运行、人工代码审查以及额外的 AI 审查。 配置分为 kernel-install 配置和 sd-boot 配置,两者都遵循 Linux 优先级顺序并支持 drop-in 文件。sd-boot 附带 /usr/lib/kernel/install.conf.d/010-sd-boot-install.conf,设置 layout=uki、initrd_generator=dracut 和 uki_generator=ukify,可在 /etc/kernel/install.conf 或 /etc/kernel/install.conf.d/ 中覆盖。README 建议坚持使用 UKI 和 dracut。 sd-boot 配置文件位于 /etc/sd-boot:config.yaml 包含 verb 和 skip_kernel_plugins 设置;efi-tool.packages 列出 EFI 工具包名称,如 memtest86_64-git 和 edk2-shell;kernel.packages 列出受管理的内核包。EFI 工具必须提供 package-name.image 文件,其中包含 .efi 程序的完整路径;sd-boot 包含 edk2-shell.image 和 memtest86_64-git.image。所有配置文件中允许以 # 开头的注释行。默认的 dracut 配置位于 /usr/lib/dracut/dracut.conf.d/010-sd-boot-dracut.conf,可在 /etc/dracut.conf.d/010-sd-boot-dracut.conf 中覆盖。