![禁用 MOK 密码提示,立即加载 GRUB](https://linux22.com/image/227013/%E7%A6%81%E7%94%A8%20MOK%20%E5%AF%86%E7%A0%81%E6%8F%90%E7%A4%BA%EF%BC%8C%E7%AB%8B%E5%8D%B3%E5%8A%A0%E8%BD%BD%20GRUB.png)
我全新安装了 Debian 12,但每次启动时都会提示我输入 MOK 密码(只是密码,没有其他选项)。我知道密码应该是什么,但输入密码时显示不匹配。但是,如果我连续 3 次输入无效内容,它会表示我已达到限制,并将我带到标准 GRUB 菜单,其中列出了所有引导选项。从那里,我可以像平常一样启动进入我的系统,绕过 MOK 密码提示。
我不记得为此安装安装了 MOK 或 SHIM 或任何类似的东西,尽管它在以前的安装中存在(我遇到了相同的问题,因此重新安装)。我并不真正关心是否有安全启动,因此完全禁用它(连同提示)是可以接受的,甚至更好。
我努力了:
- 使用 QWERTY 键盘(我的键盘已经是 QWERTY,操作系统本身的输入设置也是如此。我也尝试过仅包含数字的密码)
sudo mokutil --password
使用 mokutil ( )更改密码- 禁用安全启动(它已经在我的 UEFI 中被禁用,并且我确认它已被禁用
mokutil --sb-state
。为了更好的措施,我还禁用了它sudo mokutil --disable-validation
) - 重置 MOK (
sudo mokutil --reset
) - 通过 live USB 重新安装 Debian
- 重新安装 Debian 和 GRUB(我有 Windows 双引导设置,进入 Windows,删除每个 UNIX 分区和文件系统,然后重新安装 Debian 和 GRUB,并对新的空卷和实时 USB 进行手动分区)
值得一提的是我已经很长一段时间(至少6个月)没有让Windows更新了。因此,可能缺少可以解决此问题的固件更新,但也有可能(就像之前发生的那样)更新我的固件可能会以另一种方式导致此问题。它是一个 Surface 设备,因此 Windows 更新也可能会更新固件。
所以我的问题是,如何在启动时完全禁用 MOK 提示符,然后直接加载到 GRUB 中?
答案1
正如 @user10489 所说,您正在进行 MOK 注册/导入操作。
要取消它,sudo mokutil --revoke-import
还是sudo mokutil --reset
应该做这项工作。
请注意,所有 QWERTY 键盘布局并不相同:大多数计算机在启动时使用美式英语键盘布局,直到操作系统允许选择特定键盘布局。
答案2
MOK 密码提示通常仅在初始机器设置时运行一次。它可能运行得更频繁,因为它从未成功过。
通常,仅当启用安全启动并且安装必须编译的驱动程序(例如 nvidia dkms 驱动程序)时,才会激活 MOK 密码实用程序。为了让这样的驱动程序在启动时加载,必须对其进行签名。因此,将创建 MOK 密钥并使用它对驱动程序进行签名,然后在下次启动时,MOK 实用程序会尝试注册自定义密钥。此过程只需完成一次(创建初始密钥时),将来的更新可以重复使用已注册的密钥。
该密码为一次性密码,下次开机成功输入后就不再需要该密码。如果通过此过程注册密钥失败,有多种方法可以手动注册。例如,您可以将公共MOK密钥文件复制到EFI分区中,然后通过BIOS菜单手动加载它,然后将其从EFI分区中删除。
请注意,MOK 实用程序实际上是由 grub 加载的;它通常只运行一次,然后在下次启动正常内核时运行。如果您反复看到它,则可能是 grub 卡住了,或者是某些东西在下次启动时重新触发了它。