rEFInd的解决方案在启用安全引导时无法使用填充程序加载



背景

Ubuntu 21.10可以通过安全引导加载到我的计算机上,填充程序版本为15.4。然后参考官方教程,我在Ubuntu 21.10中通过PPA安装了rEFInd v0.13.2(发布此博客时的最新版本)。但是,当我重新启动系统并加载rEFInd时,它总是失败,并显示消息Verification failed:(0x1A)Security Violation。我确信EFI/refind/keys/下的refind_local.cerrefind.cer都已通过MokManager注册(尽管通过PPA安装只需要refind_local.cer)。

原因

从这篇文章中,我了解到rEFInd当前(v0.13.2)缺少.sbat部分。对于垫片15.3和更高版本,SBAT是强制性的,导致无法启动rEFInd。

帖子还指出,rEFInd的作者目前正在研究如何解决相关问题。我希望以后的版本能够解决这个问题。

解决方案

最后,您需要使用垫片15来解决此问题。为此,您可以执行以下步骤(适用于amd64。如果您使用其他架构,步骤也类似):

  1. 从Ubuntu启动板获取MokManager和Microsoft签名的shim-efi文件。要实现这一点,请下载shim_15+1552672080.a4a1fbe-0ubuntu2_and64.deb和shim-signed_1.45+1552672080-064ubuntub_bed64.deb
  2. 将下载的shim_15+1556272080.a4a1fbe-0ubuntu2_amd64.deb解压,取出mmx64.efi文件。(data.tar.xz->.->usr/lib/shim/mmx64.efi)
  3. 打开下载的shim-signed_1.45+1552672080.a4a1fbe-0ubuntu2_ad64.deb,取出shimx64.efi.dualsigned文件。(data.tar.xz->.->usr/lib/shim/shimx64.efi.dualsigned)将其重命名为shimx64.efi
  4. 下载refid-bin-0.13.2.zip。然后创建一个新文件夹,将取出的两个文件和下载的zip文件一起放入新文件夹
  5. 打开前面提到的文件夹中的终端,然后执行以下命令:
unzip refind-bin-0.13.2.zip
cd refind-bin-0.13.2
sudo ./refind-install --shim ../shimx64.efi

如果在安装过程中遇到任何确认,只需输入y即可进行确认。

  1. 重新启动后,如果提示Verification failed,请参阅官方教程的步骤9。选择Enroll key from disk,然后选择安装rEFInd的ESP磁盘。最后,选择路径为EFI/refind/keys/refind.cer的文件进行导入
  2. 如果您在计算机上使用非Ubuntu Linux系统,您可以继续导入与EFI/refind/keys中的发行版相对应的cer文件,如上所述。如果不这样做,可能会导致您的Linux发行版无法通过rEFInd启动

最新更新