openSUSE 中的新 systemd-boot 集成
2024 年 3 月 5 日 | Douglas DeMaio | CC-BY-SA-3.0
openSUSE 的滚动发布 Tumbleweed 每天都在发生着各种变化,systemd-boot 的集成也在不断发展。
从传统的 GRUB 引导加载程序 转向有望提高系统启动性能和安全性。
Ludwig Nussel 提供的 全面演示 阐述了 systemd-boot 集成到 openSUSE 中的动机、挑战和未来方向。
采用 systemd-boot 的主要动机在于其简单性和效率,尤其是在处理 全盘加密 时。传统的引导加载程序(如 GRUB)需要嵌入解密代码和密钥派生函数,这会使引导加载程序代码和引导过程复杂化;这可能会降低系统启动速度。使用 systemd-boot,这些责任委托给 Linux 内核 和用户空间,这有助于简化引导过程。
MicroOS 和 Tumbleweed 使用 Btrfs 及其快照功能为引导过程增加了复杂性;通过将 systemd-boot 与快照管理系统集成来解决此问题,以确保每个快照都能成功引导,并且在此动态环境中可以优雅地处理内核更新。
为了促进这种集成,引入了新的打包脚本和工具,例如 sdbootutil,用于管理内核版本、快照和引导条目。该工具在使 systemd-boot 成为 openSUSE 用户的实用选择方面发挥着关键作用,因为快照的管理方式在 MicroOS 和 Tumbleweed 中有所不同。
使用 sdbootutil,系统将在 EFI 系统分区 (ESP) 中创建新的 Type #1 引导条目,以表示所有可用的引导选项,这将从快照中复制新安装的内核到此分区。它还将为这些快照生成良好的 initrd。
在使用全盘加密时,sdbootutil 还会调用不同的命令,这些命令将更新使用系统内部 可信平台模块 2.0 (TPM2) 设备自动解锁新快照所需的策略。
理想情况下,在未来,其中一些(如果不是全部)功能将导出到 systemd 本身或其他发行版系统组件中。这些变化使这些工具成为试验、验证或放弃 openSUSE 使用 systemd-boot 的不同方法的良好场所。
目前,openSUSE 中的 systemd-boot 支持仍被认为是实验性的。Tumbleweed 和 MicroOS yast 安装程序都提供 systemd-boot 作为 grub 的替代方案,供勇于尝试的用户使用。还有为 qemu 准备好的设备,默认使用 systemd-boot 和全盘加密。
(图片使用 DALL-E 制作)