AI Generate Warning
The Post use MIT LICENSE.
AI generates more than 50% of content
prompts:[ "bios: setup mode", "sbctl: generate", "sbctl: find db by plocate", "sbctl: /usr/share/secureboot/keys/db", "sbctl: add path to dracut.config.d", "sbctl: manual sign /boot/efi/EFI/opensuse/shim.efi" ]
在这篇文章中,我将展示如何在 OpenSUSE Tumbleweed 中使用 sbctl
和 dracut
启用 Secure Boot。这是一个高级教程,旨在帮助你确保系统的启动过程被完全签名和验证,从而增加安全性。
准备工作
在开始之前,请确保你已经以管理员身份登录,并且你的系统支持 Secure Boot。
1. 设置 BIOS 为 Setup Mode
首先,你需要进入 BIOS 并将其设置为 Setup Mode
。这允许你在 BIOS 中加载和使用自定义的安全引导密钥。
步骤:
- 重新启动系统并进入 BIOS 设置(通常通过按
F2
,F10
或Del
键)。 - 找到 Secure Boot 选项,并将其设置为
Setup Mode
。 - 保存设置并退出。
2. 使用 Sbctl 生成安全引导密钥
sbctl
是一个用于管理安全引导密钥的工具。我们将使用它来生成密钥并将其安装到系统中。
安装 Sbctl
在终端中运行以下命令来安装 sbctl
:
sudo zypper install sbctl
生成并安装密钥
生成新的安全引导密钥:
sudo sbctl create-keys
这将生成 PK, KEK 和 DB 密钥,它们可能被存储在
/var/lib/sbctl/keys/
目录中,你可以使用plocate
工具查找db.key
文件尝试找到实际路径。安装密钥到系统:
sudo sbctl enroll-keys
这会将生成的密钥加载到系统固件中。在再次设置
BIOS
中的Setup Mode
之前,你只能设置一次。
3. 配置 Dracut 以支持 Secure Boot
Dracut
是一个用于生成 initramfs 的工具。我们需要配置 Dracut
以包含签名的内核和 initramfs。
添加密钥路径到 Dracut 配置
首先,我们需要找到 DB 密钥并将其路径添加到 Dracut 的配置中。
使用
plocate
找到 DB 密钥的路径:plocate db.key
假设你得到了以下路径:
/var/lib/sbctl/keys/db/db.key
将密钥路径添加到 Dracut 的配置文件中:
编辑或创建
/etc/dracut.conf.d/10-uefi-secureboot.conf
文件,添加以下内容:uefi_secureboot_cert="/var/lib/sbctl/keys/db/db.pem" uefi_secureboot_key="/var/lib/sbctl/keys/db/db.key"
生成新的 initramfs:
sudo dracut --force
这将生成一个新的 initramfs,它会包含签名的内核和 initramfs。
验证sbctl签名生效
一切顺利的情况下,运行
sudo sbctl verify
,将会输出Verifying file database and EFI images in /boot/efi... ✗ /boot/efi/EFI/opensuse/shim.efi is signed ✗ /boot/efi/EFI/boot/bootx64.efi is not signed ✗ /boot/efi/EFI/opensuse/MokManager.efi is not signed ✗ /boot/efi/EFI/opensuse/grub.efi is not signed ✓ /boot/efi/EFI/opensuse/grubx64.efi is signed
4. 手动签名 Shim 引导程序
shim.efi
是一个引导加载程序,支持在 UEFI 系统上实现安全引导。你需要手动对它进行签名。
步骤:
找到
shim.efi
文件:sudo sbctl verify
输出可能会显示出
shim.efi
文件的位置,例如:/boot/efi/EFI/opensuse/shim.efi
手动对
shim.efi
进行签名:sudo sbctl sign -s /boot/efi/EFI/opensuse/shim.efi
确保这个文件已经被正确签名,这样系统就可以使用 Secure Boot 启动。
5. 启用 Secure Boot 并验证
完成上述步骤后,返回 BIOS 并启用 Secure Boot。然后,重新启动系统,并确保它可以正常启动。
如果一切设置正确,你的系统现在应该已经成功启用了 Secure Boot。
总结
通过这些步骤,你已经成功地在 OpenSUSE Tumbleweed 系统上使用 sbctl
和 dracut
配置并启用了 Secure Boot。这将确保系统启动过程的完整性和安全性。
评论
发表评论