mokutil - 几乎所有选项都失败

mokutil - 几乎所有选项都失败

过去,我曾成功创建证书并签署了 VirtualBox 内核模块以供使用。现在,除了 --sb-state 之外,我在运行 mokutil 时尝试的所有其他参数都失败了。

基本信息:

  1. 华硕 X99-E 主板上的 Ubuntu 17.10 64 位。
  2. 所有命令都以 root 身份运行。

示例结果:

--reset
Failed to write MokAuth
Failed to issue a reset request

--list-enrolled
Failed to read MokListRT: No such file or directory

--password
input password: 
input password again: 
Failed to write MokPW: Invalid argument

--import MOK.der
input password: 
input password again: 
Failed to enroll new keys

可能相关信息:

dmesg | grep -i mok
[    9.114419] MODSIGN: Couldn't get UEFI MokListRT

有人能告诉我我做错了什么吗?MokAuth、MokListRT、MokPW 等存储在哪里,为什么无法写入它们?

一个可能相关的信息。上一次成功使用 mokutil 是在硬件更改之前。我有一个 raid 控制器,它会随机弹出阵列中的驱动器,因此我将阵列上的分区克隆到外部驱动器,更换了卡,重新创建新阵列并恢复了分区。这包括 Ubuntu 的根分区。

除此之外 - 机器和正常工作时一样。

欢迎任何想法。

史蒂夫。

答案1

这似乎是主板上的 UEFI 错误。其他一些 UEFI/BIOS 也无法实现 mokutil 工作所需的方法之一。我的华硕 X99-E USB3.1 主板也出现了问题。

您可以手动注册密钥,方法是将其保存在 USB 记忆棒上,启动 BIOS 设置并导入密钥。鼠标和 Enter 键之间的交互有点奇怪,因此当您认为应该导入时,它却没有导入。但您仍然可以这样做。

答案2

这也是 18.04 LTS 中的一个问题,也可能是后续 Ubuntu 版本中的问题。

我有多个 ASUS X99WS/IPMI 和 X99WS-E 主板,但它们都无法与“mokutil”配合使用。这是主板或 BIOS 的某种错误。我有 ASUS-X299 Prime-II,它运行良好。

x99 主板已经很旧了,但是 Xeon E5-2600v3 和 E5-2600v4 系列在 Infiniband 或 10+g RoCe 以太网上的多 GPU 和 RDMA 方面确实表现出色。

解决方法是在 BIOS 设置中手动注册密钥:

Nvidia 的驱动程序安装将创建一个MOK.der特定于您的计算机的文件,并对驱动程序进行签名(或者您可以自己签名)。Nvidia apt 安装程序将把 mok 文件放在:

/var/lib/shim-signed/mok

它将使用相同的密钥对后续安装进行签名,这非常方便。

最简单的方法是将MOK.der文件复制到 USB 密钥上。

重新启动机器,进入 BIOS 设置,使用“高级模式”并导航到Boot/SecureBoot/ManageKeys菜单。

密钥存放在“db”存储库中。因此选择,“附加到数据库”并选择'不'在弹出的对话框中询问您要做什么。(至少可以说违反直觉)。将 UEFI 存储路径导航到您的 USB 密钥,选择它并点击Enter。它会询问文件是什么,选择“...斑点”

按“保存并重置”(F10键)重新启动。

瞧,您的 nvidia 驱动程序将在安全启动中加载。

我还必须使用 Mellanox 驱动程序。Mellanox 提供直接下载:

wget http://www.mellanox.com/downloads/ofed/mlnx_signing_key_pub.der

将文件复制.der到 USB 密钥并执行相同操作。(您可以在 BIOS 中执行多个密钥附加操作)。

答案3

您应该使用 sudo 权限运行上述命令。

例如:sudo mokutil --password设置新密码

相关内容