Macos – “Building boot caches on boot helper partition failed” error selecting rEFInd

bootmacmacospartitioningrefind

I have rEFInd (0.9.2) installed on my Mac in its own hfs+ partition. This allows rEFInd to appear as an option on the "Startup Disk" window under "System Preferences". Below is an image of the "Startup Disk" window.

enter image description here

Under Yosemite (OS X 10.10.5), I had no problem selecting the rEFInd partition. Under El Captain (OS X 10.11), I get the following error message.

enter image description here

So, what changed and how do I repair it?

My Mac is a iMac (20 inch, Mid 2007). The model identifier is iMac7,1.

Update 1

This update was entered after Rod posted his answer.

The problem posted in the above question does not appear to be caused by System Integrity Protection (SIP). If I turn SIP off, the result is the same.

However since you have brought up SIP, I will add the following. With SIP turned off, I have no problem installing rEFInd using the command

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

where disk0s9 is the small partition reserved just for rEFInd. Also the following command works with SIP turned off.

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

Nether commands work properly with SIP turned on.

Update 2 (Posted 6-11-2020)

RustyShackleford posted a comment to one of my answers regarding a section from one of Rod Smith's websites titled Using Startup Disk to Adjust Your Boot Priority . This section states the Startup Disk pane of macOS System Preferences can be used to make rEFInd the default to boot. For test purposes, I installed rEFInd (0.12.0) in a JHFS+ partition on a 2013 iMac. High Sierra (macOS 10.13.6) and Catalina (macOS 10.15.4) was installed in an APFS container. Windows 10 was also installed. Below is what was shown in the Startup Disk pane of High Sierra System Preferences.

Testing using either High Sierra and Catalina resulted in the following error message. Disabling SIP did not change the error message.

If anyone knows of a configuration since Yosemite were rEFInd can be made the default from the Startup Disk pane, please post an answer.

Best Answer

When installed as you've done it, rEFInd uses critical filenames normally used by OS X's own boot loader, but on its own partition. It looks like OS X 10.11's Startup Disk tool may be relying on additional files that rEFInd's install.sh doesn't create. If so, creating appropriate "dummy" files might fix the problem -- but figuring out what files to create might be difficult.

Another possibility is that the new System Integrity Protection (aka "rootless") feature of OS X 10.11 is causing problems. If so, disabling this feature, as described here, should fix the problem; but this is a new security feature, so you should read up and decide whether you want to disable it.

You might consider trying the bless command to set the boot device manually, as described in step #8 under the OS X installation instructions for rEFInd. I don't know if this will work with System Integrity Protection enabled, though. (Using bless manually to set a boot loader on an EFI System Partition does not work with System Integrity Protection enabled, but I haven't tried it with a separate HFS+ partition.)

Note: I maintain rEFInd, and will look into this issue myself as time permits. If I can find a good solution, I'll include it in a future release of rEFInd.