在与独立显卡斗争的过程中,我多次重新安装了 Ubuntu。前几次我非常小心地将用于签署 dkms 内核模块的 .priv 和 .der 密钥移动到另一个分区。不幸的是,随着我越来越沮丧,我变得不那么小心了,显然是意外地从备份中剪切和粘贴(而不是复制和粘贴),然后在下一次重新安装时重新格式化了唯一剩余的密钥。我曾经photorec
尝试恢复文件,但不幸的是没有恢复 *.der 或 *.priv 文件。
取消注册机器所有者密钥 (MOK) 的预期方式似乎是
mokutil --delete keyname.der
鉴于我不再拥有公钥,还有其他方法可以取消注册吗?
答案1
要从数据库中删除一个特定的键,您可以首先使用标志--export
,如下所示:
$ mokutil --export
这会将所有机器所有者密钥导出到当前目录:
$ ls -1 MOK*
MOK-0001.der
MOK-0002.der
...
它们按照以下列表进行编号
$ mokutil --list-enrolled
[key 1]
SHA1 Fingerprint:....
...
[key 2]
SHA1 Fingerprint:....
这样您就可以删除一个特定的键,例如键 1:
# mokutil --delete MOK-0001.der
答案2
搞清楚了。--reset
参数起了作用。
sudo mokutil --reset
如果您已注册多个 MOK 但只想删除一个,这可能并不理想。
如果有人提出更好的选择,我会接受这个答案。
答案3
我意识到这是一个老问题,但我已经遇到过有关 VirtualBox 和机器所有者密钥的问题 —— 以至于每次 VirtualBox 无法启动会话时我都必须重建一个。
以下是我最终做的事情:
- 创建了一个名为的子目录
mokkeys
。 cd
对该目录进行了。- 执行命令
mokutil --export
列出所有 MOK*.der。 - 执行命令
mokutil -l | less
将列出的 der 与每个键列出的详细信息进行比较,并确定我想要删除的额外键。 - 为每个 MOK*.der 单独执行命令
sudo mokutil --delete
。(总是双重提示输入 MOK 密码,sudo 是唯一对我有用的方法 - 我一直试图删除这些密码,但花了很长时间)。 - 重新启动并按照 shim 提示删除键(它们在这里按顺序编号,并且与我标记为删除的键不匹配(按编号)。
- 该过程结束时重新启动。
- 执行命令“ mokutil -l | less ”来查看多余的键是否已被删除(它们已被删除)
- 跳了我私人的快乐舞蹈--- :-)