首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GRUB2多Linux双启动(安全引导和shimx64.efi)

GRUB2多Linux双启动(安全引导和shimx64.efi)
EN

Unix & Linux用户
提问于 2022-07-24 21:34:25
回答 1查看 1.6K关注 0票数 0

我试图创建一个最终的USB棒,它将包含2个Linux发行版、Windows和大量的ISO。

到目前为止,我已经将Windows、Ubuntu和安装到磁盘上(我一直在VM中进行测试,以使事情更快)。在机器的UEFI启动菜单中,我可以看到所有的选项并成功地引导其中的任何一个。

在Fedora或Ubuntu菜单中,我可以引导Windows,但它们都无法彼此引导。

由于我最终也希望启动ISO文件,所以我需要能够从GRUB加载其他Linux安装程序。

我尝试过的

禁用安全启动:

这确实有效,但是我不想这样做,因为我希望能够在其他人的机器上使用它,而且我可能不高兴禁用他们的安全引导。

链加载:

GRUB通过链式加载程序加载Windows,所以我想我也可以在Linux上做同样的事情。

如果我chainloader /EFI/ubuntu/grubx64.efi (从Fedora的GRUB菜单),那么我会得到同样的垫片错误。

如果我使用chainloader /EFI/ubuntu/shimx64.efi (来自Fedora的GRUB菜单),那么我就可以找到Ubuntu的GRUB菜单了--尽管我在试图引导Ubuntu时仍然会遇到一个shim错误。

如果我正确理解的话,

如果我正确理解,shimx64.efi就是UEFI实际加载的内容。该文件是否仅包含单个内核的安全引导信息?

当我选择将UEFI链接到另一个GRUB菜单时,我能让UEFI再次加载shimx64.efi吗?

有人能向我解释一下shimx64.efi的情况吗?如果可以从同一个GRUB菜单双引导两个Linux发行版,同时启用安全引导。

非常感谢,威尔

EN

回答 1

Unix & Linux用户

发布于 2022-07-25 00:38:54

如果我正确理解,那么shimx64.efi就是UEFI实际加载的内容。该文件是否仅包含单个内核的安全引导信息?

差不多但不完全正确。每个发行版的shim版本都由Microsoft签名,该shim包含其所属发行版的安全启动公钥。当使用shim时,它暂时(非持久化)将发行版的安全启动密钥添加到允许引导系统的密钥列表中。另外,shim还可以添加机器所有者的密钥(MOK)。

因此,当您加载Fedora的shimx64.efi时,安全引导就可以接受由Fedora签名的内容。然后加载grubx64.efi,它由Fedora签名,现在可以被安全引导固件接受。当grubx64.efi加载Fedora的内核时,内核文件由Fedora签名,因此安全引导允许执行内核代码。

如果您想构建自定义内核,则必须创建一个MOK并使用它对您的自定义内核进行签名。此外,如果您想构建自定义或第三方内核模块,您也必须与MOK签署它们,因为安全启动“契约”的一个部分是,必须不允许任何未经签名的内核代码。因此,当启用安全引导时,引导加载程序必须检查内核的签名,内核必须检查每个模块的签名。

您将无法用发行版的安全启动密钥签署任何内容,因为这需要发行版安全启动密钥的私有部分--这可能是负责相应发行版安全性的人员非常安全的。

在其他人的机器上安装你的MOK几乎和禁用他们的安全启动一样糟糕,因为这样你就可以在他们的系统上启动任何东西。

显然,在加载了一个shim之后,链接加载另一个shim副本在理论上是可行的,但是shim的源代码注释表明它并不是很简单.

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/711118

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档