GRUB2-BLS 在 openSUSE Tumbleweed 中现已成为默认设置
2025年11月13日 | Alberto Planas | CC-BY-SA-3.0
openSUSE Tumbleweed 最近在使用 YaST 安装时,将默认引导加载程序从 GRUB2 更改为 GRUB2-BLS。
这延续了 MicroOS 采用与 引导加载程序规范 兼容的引导加载程序的趋势。MicroOS 正在使用 systemd-boot,这是一种非常小且快速的引导加载程序,来自 systemd 项目。
进行此更改的原因之一是简化新功能的集成。其中一项功能是基于 systemd 工具的全盘加密,如果可用,它将使用 TPM2 或 FIDO2 令牌。
什么是 GRUB2-BLS
GRUB2-BLS 只是 GRUB2,但在其上移植了来自 Fedora 项目的一些补丁,其中包括一些与引导加载程序规范中 Type #1 引导条目兼容性。这些是存储在 /boot/efi/loader/entries 中的小型文本文件,引导加载程序读取它们以呈现初始菜单。
每个文件都包含对内核、initrd 和将用于引导系统的内核命令行引用的引用。可以直接由用户编辑,或由 bootctl 和 sdbootutil 等工具管理。
在 GRUB2 的下一个版本 (2.14) 中,这些补丁将包含在项目本身中,并且升级过程对最终用户将是透明的。
值得注意的是,openSUSE 部署 GRUB2-BLS 的方式与经典 GRUB2 不同。GRUB2-BLS 作为单个 EFI 二进制文件部署,安装(复制)在 /boot/efi/EFI/opensuse 中,该文件将嵌入所有资源(如模块、配置文件、字体、主题和图形),这些资源先前放置在 /boot/grub2 中。
安装
好消息是,使用最新版本的 YaST,该过程是自动的。用户只需按照默认步骤操作,系统最终将基于 GRUB2-BLS。
安装程序首先会建议一个大约 1GB 的大型 ESP 分区。这是必需的,因为所有内核和 initrd 现在都将放置在位于 /boot/efi/opensuse-tumbleweed 中的 FAT32 ESP 分区中。
当然,用户可以在安装过程中选择不同的引导加载程序,例如经典的 GRUB2 或 systemd-boot。这可以在安装建议结束时显示的“安装设置”屏幕中完成。只需选择“引导”标题链接,即可从那里选择您的引导加载程序。
全盘加密
在使用 BLS 引导加载程序时,我们现在可以使用基于 systemd 的全盘加密 (FDE) 安装系统。这可以从“建议分区”屏幕完成。只需按“引导设置”并在“分区方案”中选择“启用磁盘加密”。
从那里,您可以设置 LUKS2 密码,并选择性地注册安全设备,例如 TPM2 或 FIDO2 密钥。对于笔记本电脑,建议使用 TPM2+PIN 注册系统。TPM2 将首先断言系统处于健康(已知)状态。这意味着用于引导过程的元素(从固件到内核)都是预期的,并且没有人篡改过它们。之后,TPM2 将要求输入 PIN 或密码,YaST 将将其设置为输入的 LUKS2 密钥槽密码。
用法
使用 GRUB2-BLS,我们将不再拥有 grub2 工具,例如 grub2-mkconfig 或 grub2-install。其中大多数不再需要。引导条目由引导加载程序动态生成,因此不再需要生成 GRUB2 配置文件,并且安装只是将新的 EFI 文件复制到正确的位置。
升级过程也通过自动调用来自 snapper 插件或 SUSE 模块工具的 sdbootutil update 来完成,因此如果使用 btrfs,所有管理都将由该基础设施透明地完成,就像在传统引导加载程序中所做的那样。
现在可以通过编辑引导加载程序或 /etc/kernel/cmdline 并调用 sdbootutil update-all-entries 来更新内核命令行,以将更改传播到当前快照的引导条目。
要管理 FDE 配置,您可以了解更多信息,请访问 openSUSE wiki。