Secure Boot 的Linux系统中添加模块

BIOS里开启了Secure Boot的Linux系统,加载第三方模块的时候,会被拒绝。这时候,就需要我们手动给模块签名,才能加载。

具体来说,分成三步:

  • 生成证书
  • 注册证书
  • 签名模块

完成这些工作,需要使用opensslmokutilsign-filexz等工具。

我们以VirtualBox的驱动模块vboxdrv.ko.xz为例。

生成证书

openssl用于生成证书的命令如下:

openssl req -new -x509 -newkey rsa:2048 -keyout vbox.key -outform DER -out vbox.der -nodes -days 3650 -subj "/CN=vbox drivers"

之后,我们会得到vbox.keyvbox.der两个文件:vbox.key是私钥文件,vbox.der是DER格式的证书文件。

注册证书

现在我们使用mokutil工具把vbox.der文件注册到系统中。

执行:

sudo mokutil --import ./vbox.der
<
Linux系统中启用和配置Secure Boot需要遵循一系列步骤,以确保系统在安全启动模式下正常运行。以下是一个详细的指南: ### 启用Secure Boot 1. **进入UEFI BIOS设置界面** 在系统启动时,按下相应的热键(通常是`F2`、`F12`、`Del`或`Esc`,具体取决于主板型号)进入UEFI BIOS设置界面。 2. **启用Secure Boot功能** 在BIOS设置界面中找到“Secure Boot”选项(通常位于“Security”或“Boot”标签页下),将其设置为“Enabled”。同时,确保系统的启动模式为UEFI而非Legacy BIOS模式[^2]。 3. **切换到Setup Mode** 在启用Secure Boot之前,某些Linux发行版要求系统处于“Setup Mode”。可以通过删除或清空所有现有的签名证书(PK、KEK、db等)来实现这一目标。这一步骤通常需要使用`MokManager`或通过BIOS界面手动清除证书。 ### 配置Secure Boot以支持Linux 1. **安装支持Secure BootLinux发行版** 确保所使用的Linux发行版支持Secure Boot。例如,Ubuntu、Fedora和SUSE等主流发行版均已提供对Secure Boot的良好支持。系统通常会使用一个由Microsoft签名的Shim程序来加载GRUB和内核[^3]。 2. **注册MOK(Machine Owner Key)** 如果需要加载未被签名的内核模块(如VirtualBox驱动),可以通过`shim-signed`包生成MOK密钥,并在系统启动时通过`MokManager`注册该密钥。具体操作如下: - 安装`shim-signed`和`mokutil`工具: ```bash sudo apt install shim-signed mokutil ``` - 生成MOK密钥并注册: ```bash sudo update-secureboot-policy --new-key ``` 系统会提示设置密码,重启后进入MOK管理界面并使用该密码完成密钥注册[^3]。 3. **验证Secure Boot状态** 重启系统后,可以通过以下命令检查Secure Boot是否已成功启用并配置: ```bash mokutil --test-key /var/lib/shim-signed/mok/MOK.der ``` 此外,还可以通过以下命令查看当前Secure Boot的状态: ```bash sudo mokutil --sb-state ``` ### 注意事项 - 在启用Secure Boot之前,确保所有必要的系统组件(如内核、引导程序和驱动模块)均已正确签名,否则可能导致系统无法启动。 - 如果系统无法正常启动,可以尝试通过BIOS界面或使用`MokManager`工具重新配置密钥策略。 - 对于虚拟机环境,确保虚拟机管理程序(如KVM或VirtualBox)支持Secure Boot,并在虚拟机设置中启用相关选项[^1]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值