可以在启用安全启动的情况下双启动Linux和Windows 10吗?

每一份我看到的资料都说,为了双系统启动,我需要禁用安全启动。这让我感到困惑,因为根据这篇文章(链接1),Ubuntu应该支持安全启动。但对我来说并非如此。我不得不禁用安全启动才能看到grub引导界面。
昨天和今天,我曾尝试使用bcdedit进行实验,看看是否可以让Windows引导管理器处理双系统启动过程,并保持安全启动的状态。但结果也是不行。
所以,有没有可能在启用安全启动的情况下实现Linux和Windows 10的双系统启动呢?

1第二个答案(http://askubuntu.com/a/235618/158442)可能是原因。 - muru
嗯,禁用安全启动可能仍然是通过grub引导Windows所必需的(错误#1091464)。 - ubfan1
1个回答

是的,启用安全启动后,应该可以同时引导Linux和Windows 10。然而,这将取决于您机器的固件和配置。
您需要确保操作系统的签名密钥都存在于UEFI密钥数据库中(具体来说,是`db`密钥数据库)。
Ubuntu shim二进制文件(由您机器的固件加载的第一个东西)使用以下密钥链进行签名:
图像签名发行者: - /C=US/ST=Washington/L=Redmond/O=Microsoft Corporation/CN=Microsoft Corporation UEFI CA 2011 图像签名证书: - 主题:/C=US/ST=Washington/L=Redmond/O=Microsoft Corporation/OU=MOPR/CN=Microsoft Windows UEFI Driver Publisher 签发者:/C=US/ST=Washington/L=Redmond/O=Microsoft Corporation/CN=Microsoft Corporation UEFI CA 2011 - 主题:/C=US/ST=Washington/L=Redmond/O=Microsoft Corporation/CN=Microsoft Corporation UEFI CA 2011 签发者:/C=US/ST=Washington/L=Redmond/O=Microsoft Corporation/CN=Microsoft Corporation Third Party Marketplace Root
- 所以你需要确保至少其中一个存在于db中。
然后,这个shim将加载GRUB,并验证grub二进制文件的签名与MOK密钥数据库中的签名进行对比。你可以使用mokutil来检查这个签名链。这是我机器上grub二进制文件的签名链:
图像签名发行者:
 - /C=GB/ST=Isle of Man/L=Douglas/O=Canonical Ltd./CN=Canonical Ltd. Master Certificate Authority
图像签名证书:
 - 主题:/C=GB/ST=Isle of Man/O=Canonical Ltd./OU=Secure Boot/CN=Canonical Ltd. Secure Boot Signing
   发行者:/C=GB/ST=Isle of Man/L=Douglas/O=Canonical Ltd./CN=Canonical Ltd. Master Certificate Authority
除此之外,看看能否找到任何失败引导过程中的错误消息或错误日志。它们可能会指引你更具体地进行调试。

Jeremy Kerr,当你启用安全启动后,你进行了哪些安装步骤?每次我启用安全启动时,都会出现一个错误提示:“安全启动失败,操作系统无效。” - edgarej
1我刚刚安装了Ubuntu,并在固件配置界面中启用了安全启动。然而,很有可能你的系统固件与我的配置不同,可能包括存在不同的安全启动证书。 - Jeremy Kerr