启用 Secure Boot 时 rEFInd 无法使用 shim 加载的解决方案
Posted
技术标签:
【中文标题】启用 Secure Boot 时 rEFInd 无法使用 shim 加载的解决方案【英文标题】:A solution to rEFInd unable to load using shim when Secure Boot is enabled 【发布时间】:2021-12-12 21:49:12 【问题描述】:背景
Ubuntu 21.10 可以通过安全启动加载到我的电脑上,shim 版本是 15.4。然后参考官方tutorial,我在Ubuntu 21.10通过PPA安装了rEFInd v0.13.2(我发这篇博客时的最新版本)。但是,当我重新启动系统并加载 rEFInd 时,它总是失败并显示消息 Verification failed:(0x1A)Security Violation
。我确定EFI/refind/keys/
下的refind_local.cer
和refind.cer
都已通过MokManager
注册(尽管通过PPA 安装只需要refind_local.cer
)。
【问题讨论】:
【参考方案1】:原因
从this post,我得到了 rEFInd 当前(v0.13.2)缺少.sbat
部分。对于 shim 15.3 及更高版本,SBAT 是强制的,导致无法启动 rEFInd。
该帖子还表明rEFInd的作者目前正在研究如何解决相关问题。希望以后的版本能解决这个问题。
解决方案
总之,你需要使用 shim 15 来解决这个问题。为此,您可以执行以下步骤(适用于amd64。如果您在其他架构上,步骤也类似):
-
从Ubuntu launchpad获取MokManager和微软签名的shim efi文件。为此,请下载shim_15+1552672080.a4a1fbe-0ubuntu2_amd64.deb 和shim-signed_1.45+15+1552672080-064ubuntub_bed64.deb。
解压下载的shim_15+1552672080.a4a1fbe-0ubuntu2_amd64.deb,取出
mmx64.efi
文件。 (data.tar.xz
-> .
-> usr/lib/shim/mmx64.efi
)
解压下载shim-signed_1.45+15+1552672080.a4a1fbe-0ubuntu2_amd64.deb,取出shimx64.efi.dualsigned
文件。 (data.tar.xz
-> .
-> usr/lib/shim/shimx64.efi.dualsigned
) 重命名为shimx64.efi
。
去下载refind-bin-0.13.2.zip。然后新建一个文件夹,把取出来的两个文件和下载的zip文件一起放到新文件夹中。
在上述文件夹中打开终端,然后执行以下命令:
unzip refind-bin-0.13.2.zip
cd refind-bin-0.13.2
sudo ./refind-install --shim ../shimx64.efi
如果在安装过程中遇到任何确认,只需输入y
进行确认即可。
-
重启后如果提示
Verification failed
,参考官方tutorial的步骤9。选择Enroll key from disk
,然后选择安装rEFInd的ESP盘。最后选择路径EFI/refind/keys/refind.cer
的文件进行导入。
如果您的计算机上使用的是非Ubuntu Linux系统,您可以如上继续在EFI/refind/keys
中导入您的发行版对应的cer文件。否则可能会导致您的 Linux 发行版无法通过 rEFInd 启动。
【讨论】:
以上是关于启用 Secure Boot 时 rEFInd 无法使用 shim 加载的解决方案的主要内容,如果未能解决你的问题,请参考以下文章