我遇到了与此处完全相同的问题,只是我无法使用建议的解决方案进行恢复。
升级到 Ubuntu 16.04 后无法加载“vboxdrv”(我想保留安全启动)
我已按照推荐的解决方案操作,一切似乎都很好,但仍然无法加载模块。
密钥似乎已正确加载:
$ sudo mokutil --list-enrolled
[key 1]
[…]
[key 2]
SHA1 Fingerprint: 0f:6f:8e:7a:39:d0:27:33:7d:eb:e0:62:cf:38:b1:af:4c:82:98:c4
Certificate:
[…]
Issuer: CN=modssign
[…]
X509v3 extensions:
X509v3 Subject Key Identifier:
83:83:25:5B:D6:6E:A0:BB:87:44:A9:8C:EA:47:58:DD:07:B9:A6:C7
X509v3 Authority Key Identifier:
keyid:83:83:25:5B:D6:6E:A0:BB:87:44:A9:8C:EA:47:58:DD:07:B9:A6:C7
[…]
并且该模块使用该密钥进行签名:
$ sudo modinfo vboxdrv
filename: /lib/modules/3.16.0-77-generic/misc/vboxdrv.ko
version: 5.1.0 r108711 (0x00260000)
license: GPL
description: Oracle VM VirtualBox Support Driver
author: Oracle Corporation
srcversion: 32F3C607C8086AE6187D18B
depends:
vermagic: 3.16.0-77-generic SMP mod_unload modversions
signer: modssign
sig_key: 83:83:25:5B:D6:6E:A0:BB:87:44:A9:8C:EA:47:58:DD:07:B9:A6:C7
sig_hashalgo: sha256
但模块仍然插入失败:
$ sudo modprobe vboxdrv
modprobe: ERROR: could not insert 'vboxdrv': Required key not available
您有什么想法吗?我以为我已经正确遵循了所有步骤(包括在启动时注册新密钥等)
更多技术信息:
- Ubuntu 14.04.4 LTS 刚刚更新
- Linux 3.16.0-77-通用
- 从 Virtualbox.org 网站刚刚下载的 Virtualbox 5.1.0 r108711
提前感谢您的提示!
编辑2016-08-23 的:
我认为问题是由于我的证书在启动时从未被内核加载。
内核加载的证书是4a94
:
$ sudo dmesg | grep 'Loaded X.509 cert'
[ 1.126207] Loaded X.509 cert 'Magrathea: Glacier signing key: 4a94aff5eff7b539906b3f2a9d0cca00dac4cbb0'
并且所有模块都已正确加载,因为它们都使用此特定密钥进行签名(4a94
):
$ sudo modinfo ip_tables | grep sig_key
sig_key: 4A:94:AF:F5:EF:F7:B5:39:90:6B:3F:2A:9D:0C:CA:00:DA:C4:CB:B0
但即使我的证书显示在 中mokutil --list-enrolled
,它似乎也没有在启动时加载。
如何在启动时将证书添加到内核?我是否必须重建一个包含证书的新内核?