呈现 GRUB2 BLS
2024年10月8日 | Alberto Planas | 无许可
GRUB2 与 BLS 现在已在 MicroOS 和 Tumbleweed 中可用
最近,openSUSE 项目为 MicroOS 和 Tumbleweed 发布了一个新的 GRUB2 软件包版本,其中包含一个新的子软件包 grub2-$ARCH-efi-bls。这个子软件包提供了一个新的 EFI 文件,grubbls.efi,它可以替代传统的 grub.efi。
新的 PE 二进制文件是包含来自 Fedora 的一组补丁的 GRUB2 版本,这使得引导加载程序遵循引导加载程序规范 (BLS)。这将使 GRUB2 能够理解 /boot/efi/loader/entries 中的引导条目,并在启动时动态生成显示的引导菜单。
这对于完整磁盘加密 (FDE) 非常重要,因为这意味着现在我们可以重用为 systemd-boot 设计的所有架构和工具。例如,现在可以使用 sdbootutil install 安装或更新引导加载程序,suse-module-tools 脚本将在安装新内核时创建新的 BLS 条目,并且 tukit 和 snapper 插件将负责在创建或删除快照时执行正确的操作。
在不修改的情况下重用所有这些工具是一项巨大的胜利,但更重要的是,经典 GRUB2 在扩展事件日志时表现出的一些怪癖不再存在。在此软件包之前,sdbootutil 需要获取 grub.conf 文件的所有权,因为 GRUB2 将按执行的行对其进行测量。没错,对于 GRUB2 解析器读取和执行的每一行,都会发生一个新的 PCR#8,并且由于 GRUB2 支持条件语句和其他复杂的构造,因此很难在不施加非常精简和严格的 grub.conf 的情况下预测 PCR#8 的最终值。
但是,使用新的 BLS 子软件包,该文件以及主题的字体和图形资源,以及所需的模块(如 bli.mod)现在都包含在 EFI 二进制文件内部的 squashfs 中。GRUB2 不会测量这些内部文件,而不会降低安全保证,因为现在固件会在启动过程中执行引导加载程序时测量整个 EFI。
目前我们无法使用 YaST2 安装带有 BLS 的 GRUB2,但我们可以非常轻松地手动完成。我们需要进行 systemd-boot 安装,将 /etc/sysconfig/bootloader 中的 LOADER_TYPE 从 systemd-boot 更改为 grub2-bls,安装新的 GRUB2 BLS 软件包,然后执行 sdbootutil install。另一种选择是使用可用的 MicroOS 或 Tumbleweed 镜像进行试验。
类别: 博客
标签