Ubuntu:启用 SecureBoot 后“以不安全模式启动”

Ubuntu:启用 SecureBoot 后“以不安全模式启动”

我刚刚安装了 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 为本已危险的所谓安全启动海洋增添了更多模糊性。(事实上,我可能误解了有问题的界面。如果是这样,那只会证实我的观点。)

相关内容