解决启用安全启动的情况下使用shim无法启动rEFInd

背景

笔者电脑中,Ubuntu 21.10 可以通过安全启动引导,shim 版本为 15.4。参考官方教程,随后在 Ubuntu 21.10 中通过 PPA 安装 rEFInd v0.13.2(截止本博客发布时为最新版)。但是重启系统进入 rEFInd,却总是提示 Verification failed:(0x1A)Security Violation,已经确信通过 MokManager 导入了 EFI/refind/keys/ 目录下的 refind_local.cer, refind.cer(即使通过PPA安装应该只需导入refind_local.cer)。

原因

从此贴中,得知 rEFInd 目前 (v0.13.2) 缺少.sbat区。shim 15.3以及之后版本,SBAT是强制要求的,从而导致无法启动 rEFInd。

从贴子中另外得知,目前 rEFInd 作者正在研究如何解决该问题。希望之后的版本能顺利修复。

解决方案

只需要使用shim 15就可以解决这个问题,为此,对于可以执行如下步骤(适用于amd64,其他架构类似):

  1. 我们从 Ubuntu launchpad 获取MokManager 以及已经经过微软签名的 shim efi 文件。下载shim_15+1552672080.a4a1fbe-0ubuntu2_amd64.deb和shim-signed_1.45+15+1552672080.a4a1fbe-0ubuntu2_amd64.deb。
  2. 将下载完成的shim_15+1552672080.a4a1fbe-0ubuntu2_amd64.deb文件解包,取出其中的mmx64.efi文件(data.tar.xz-> . -> usr/lib/shim/mmx64.efi)
  3. 将下载完成的shim-signed_1.45+15+1552672080.a4a1fbe-0ubuntu2_amd64.deb文件解包,取出其中的shimx64.efi.dualsigned文件(data.tar.xz-> . -> usr/lib/shim/shimx64.efi.dualsigned),并将其重命名为shimx64.efi
  4. 前往下载refind-bin-0.13.2.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,参考官方教程的第九步,选择Enroll key from disk,然后选择你安装rEFInd的ESP盘,依次选择路径EFI/refind/keys/refind.cer 导入即可。
  2. 如果你电脑中使用了非Ubuntu的linux系统,还可以同上继续导入EFI/refind/keys中对应其它发行版cer文件,如果不这样做可能会导致系统无法通过rEFInd启动。

你可能感兴趣的:(笔记,安全,ubuntu,linux)