选择 rEFInd 时出现“在启动辅助分区上构建启动缓存失败”错误

选择 rEFInd 时出现“在启动辅助分区上构建启动缓存失败”错误

我在 Mac 上自己的 hfs+ 分区中安装了 rEFInd (0.9.2)。这样 rEFInd 就会作为选项出现在“系统偏好设置”下的“启动磁盘”窗口中。下面是“启动磁盘”窗口的图片。

在此处输入图片描述

在 Yosemite (OS X 10.10.5) 下,我选择 rEFInd 分区没有问题。在 El Captain (OS X 10.11) 下,我收到以下错误消息。

在此处输入图片描述

那么,发生了什么变化?我该如何修复它?

我的 Mac 是 iMac(20 英寸,2007 年中)。型号标识符为 iMac7,1。

更新 1

此更新是在 Rod 发布他的答案后输入的。

上述问题中提出的问题似乎不是由系统完整性保护 (SIP) 引起的。如果我关闭 SIP,结果是一样的。

不过既然你提到了 SIP,我就补充一下。关闭 SIP 后,我使用以下命令安装 rEFInd 毫无问题

sudo ./install.sh --ownhfs /dev/disk0s9

其中disk0s9的小分区仅保留给 rEFInd。以下命令在 SIP 关闭时也有效。

sudo bless --device /dev/disk0s9 --setBoot

当 SIP 开启时,Nether 命令可以正常工作。

更新 2(发布日期:2020-06-11)

拉斯蒂·沙克尔福德对其中一个发表了评论我的答案关于 Rod Smith 的一个网站中的部分内容使用启动盘调整启动优先级。本节说明 macOS 系统偏好设置的启动磁盘窗格可用于将 rEFInd 设为默认启动。为了进行测试,我在 2013 年 iMac 上的 JHFS+ 分区中安装了 rEFInd (0.12.0)。High Sierra (macOS 10.13.6) 和 Catalina (macOS 10.15.4) 安装在 APFS 容器中。还安装了 Windows 10。以下是 High Sierra 系统偏好设置的启动磁盘窗格中显示的内容。

使用 High Sierra 和 Catalina 进行测试导致出现以下错误消息。禁用 SIP 不会更改错误消息。

如果有人知道自从 Yosemite 以来 rEFInd 的配置可以从启动磁盘窗格中设置为默认配置,请发表答案。

答案1

按照您安装的方式安装后,rEFInd 会使用 OS X 自己的引导加载程序通常使用的关键文件名,但位于其自己的分区上。看来 OS X 10.11 的启动盘工具可能依赖于 rEFIndinstall.sh未创建的附加文件。如果是这样,创建适当的“虚拟”文件可能会解决问题——但弄清楚要创建哪些文件可能很困难。

另一种可能是 OS X 10.11 的新系统完整性保护(又称“无根”)功能导致问题。如果是这样,请禁用此功能,如所述这里,应该可以解决问题;但这是一个新的安全功能,因此您应该阅读并决定是否要禁用它。

您可以考虑尝试使用bless命令手动设置启动设备,如步骤 #8 中所述rEFInd 的 OS X 安装说明。不过,我不知道这是否会在启用系统完整性保护的情况下起作用。(使用bless手动在 EFI 系统分区上设置引导加载程序不会不是在启用系统完整性保护的情况下可以工作,但我还没有尝试使用单独的 HFS+ 分区。)

注意:我负责维护 rEFInd,并将在时间允许的情况下亲自研究此问题。如果我能找到一个好的解决方案,我会将其包含在 rEFInd 的未来版本中。

答案2

我遇到了和你同样的麻烦,直到我发现了这篇博文:

将 rEFInd 启动管理器配置为 Mac 上的启动磁盘

作者,DavidJB.com,描述了如何通过control在从启动管理器中选择启动磁盘的同时按下该键来设置默认启动磁盘。(您需要option在启动过程中按住该键才能调用启动管理器)。作者建议control在单击磁盘时按住该键,但我没有指针,所以在选择所需磁盘后control按下该键时只需按住该键即可return

到目前为止,它已经让我重新索引,从那时起,每次我重新启动时,我都会将其安装在单独的 HFS+ 分区上。

相关内容