MOKutil:注册已安装驱动程序的密钥

MOKutil:注册已安装驱动程序的密钥

我使用我的发行版(Zorin OS)在首次安装时提供的选项在我的 PC 上安装了专有的 NVIDIA 驱动程序。不幸的是,驱动程序的签名未注册到 MOK,这导致安全启动阻止其加载。

运行modinfo nvidia告诉我驱动程序确实已签名,但mokutil --list-enrolled在任何地方都没有显示驱动程序的签名。所以一直没有被录取。

之后如何将驱动程序签名注册到MOK?我只找到了有关自己签署模块,然后将自己的签名注册到 MOK 的解决方案 - 但我已经签署了它,我只是找不到一种方法将签名从modinfoMOK 中获取。

提前致谢!

答案1

您没有注册特定的签名;您注册了(的公共部分)用于签名的密钥。通常(= 除非您接管系统上整个安全启动密钥层次结构的控制),该密钥称为机器所有者密钥,简称 MOK。

由于 Zorin 基于 Ubuntu,而 Ubuntu 又基于 Debian,因此我预计 MOK 签名密钥的标准位置将与 Debian 中的相同,即目录/var/lib/shim-signed/mok/

该目录应包含两个文件:MOK.der公钥可以用来查看签名的有效性以及相应的MOK.priv,私钥可以用来创造签名。

要使用现有密钥(您的 NVidia 模块已使用该密钥进行签名)重新启动 MOK 注册过程,请运行:

sudo mokutil --import /var/lib/shim-signed/mok/MOK.der

它将要求您设置一个一次性密码以完成注册过程,这将在下次重新启动时发生。

重新启动系统后,安全启动垫片将启动 MOK 管理器 EFI 实用程序 ( /boot/efi/EFI/<distribution>/mmx64.efi),该实用程序将要求您输入刚刚设置的密码,并最终确认您确实希望注册 MOK。此过程可确保您只有在拥有 root 权限并且可以访问物理系统控制台的情况下才能注册 MOK。

相关内容