【发布时间】:2016-06-03 14:23:10
【问题描述】:
由于我在 Ubuntu 16.04 上启用了安全启动,我需要签署 vboxdrv。
我使用以下方法创建签名密钥:
openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj "/CN=Descriptive name/"
然后我签署模块:
sudo /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 ./MOK.priv ./MOK.der $(modinfo -n vboxdrv)
但是,当我打电话时:
modinfo vboxdrv
模块未确认签名:
$ modinfo vboxdrv
filename: /lib/modules/4.4.0-22-generic/updates/dkms/vboxdrv.ko
version: 5.0.18_Ubuntu (0x00240000)
license: GPL
description: Oracle VM VirtualBox Support Driver
author: Oracle Corporation
srcversion: 316C2AE8082B5DFBAABE7EA
depends:
vermagic: 4.4.0-22-generic SMP mod_unload modversions
parm: force_async_tsc:force the asynchronous TSC mode (int)
然后我运行:
sudo mokutil --import MOK.der
然后重新启动,提示我导入机器所有者密钥。
但是,这会失败(无效的参数 (2))。
我认为这是由于模块没有提前签名,因为运行 modinfo vboxdrv 应该确认模块已签名。
【问题讨论】:
-
我在这里提交了一个针对
mokutil的错误:bugs.launchpad.net/ubuntu/+source/mokutil/+bug/1600452 和针对shim的错误github.com/rhinstaller/shim/issues/55 -
这已经由 shim 开发人员修补(我测试过它并且它工作)。我相应地更新了我的答案。
-
也许我发布的this答案可以帮助解决它
标签: linux ubuntu virtualbox signing ubuntu-16.04