![Ubuntu:启用 SecureBoot 后“以不安全模式启动”](https://linux22.com/image/1054207/Ubuntu%EF%BC%9A%E5%90%AF%E7%94%A8%20SecureBoot%20%E5%90%8E%E2%80%9C%E4%BB%A5%E4%B8%8D%E5%AE%89%E5%85%A8%E6%A8%A1%E5%BC%8F%E5%90%AF%E5%8A%A8%E2%80%9D.png)
我刚刚安装了 Ubuntu 15.10,之前我试用过 16.04 LTS 一段时间。在使用 16.04 时,我尝试安装 Nvidia 驱动程序,并被告知需要禁用 SecureBoot,因此我输入了密码,下次重启时某些软件会要求输入密码。但是,我的 BIOS 设置仍然显示 SecureBoot 已启用,而且我仍然可以看到,如果我尝试从任何未签名的程序启动,它会拒绝这样做。
但是,当我重新安装 Ubuntu 15.10(完全删除与 16.04 相关的所有内容,包括 EFI 分区中的 grub)时,每次启动时都会收到一条Booting in insecure mode
消息。
我已经检查了所有内容,并且:Windows 和 BIOS 设置都报告 SecureBoot 已启用
答案1
如果要消除有关不安全启动的消息,您需要启用安全启动。为此,您需要在 MOK(机器所有者密钥)模块中打开验证:
sudo mokutil --enable-validation
您将被要求输入两次临时密码,然后重启后才可以更改验证状态。
如果启用了验证,则不会再出现有关不安全启动的消息。但请记住,您将无法运行任何未签名的驱动程序:nVidia 驱动程序和 VirtualBox 将无法运行。
要禁用验证类型:
sudo mokutil --disable-validation
然后重新启动。
如果您禁用验证并在 BIOS 中打开安全启动,您仍然无法启动任何未签名的内容。即使您的 ubuntu 已禁用验证,但由于 shim 签名的软件包,BIOS(UEFI)仍将其视为已签名。您的 ubuntu 启动时,Shim 软件包会检查 MOK 状态,如果验证已禁用,则会显示消息“以不安全模式启动”。
答案2
您可以通过以下方式检查安全启动的状态 -
$ mokutil --sb-state
对于你来说,输出可能是 -
SecureBoot enabled
SecureBoot validation is disabled in shim
您需要使用以下命令重新启用安全启动验证,最终将不会显示“以非安全模式启动”的文字。
$ sudo mokutil --enable-validation
这里命令会要求你输入一个密码,这个密码并不是你的登录密码,只是一个临时密码,你需要设置一个密码,后面的步骤会要求你输入这个密码。
现在,重新启动并按照显示的说明进行操作执行 MOK 管理蓝屏。
选择更改安全启动状态。
来源 -
https://wiki.debian.org/SecureBoot
https://wiki.ubuntu.com/UEFI/SecureBoot
答案3
上面的第一个答案包含以下说法:“如果你想要摆脱关于不安全启动的消息,你需要启用安全启动。”这种说法是错误的。原因如下(解释可能对想要摆脱该消息的人有所帮助)。
看到消息“以不安全模式启动”并不意味着在 BIOS 中禁用安全启动(又名“UEFI”)。因为,当在 BIOS 级别禁用安全启动时,我看到了该消息;导致显示该消息(或至少足以显示该消息)的原因如下。我发出了命令sudo mokutil --disable-validation
,然后重新启动,然后经历了 mokutil(或者我应该说“EFI”?)繁琐的程序。我之所以禁用它是为了尝试修复与安全启动有关的另一个问题。
该命令sudo mokutil --enable-validation
足以让我摆脱“以不安全模式启动”的消息。因此,我回到了之前的快乐状态,其中安全启动被禁用,并且(然而)我没有看到该消息。或者更确切地说,这是当我再次重新启动(通过该命令)进入“mokutil”界面时的结果,具体来说,首先,告诉该界面禁用安全启动 - 或者更确切地说,保持禁用状态。后一个问题 - 即必须告诉命令生成的界面mokutil
禁用已经禁用的东西 - 只是冰山一角。这座冰山是毫无意义的模糊,令人震惊的是,mokutil 生成的 UI 为本已危险的所谓安全启动海洋增添了更多模糊性。(事实上,我可能误解了有问题的界面。如果是这样,那只会证实我的观点。)