Installed refind to a separate HFS+ partition alongside macOS 10.14, but can’t set it as the startup disk

bootefipartition

I use refind as my boot manager on my 2015 MacBook Air. Originally I had it installed on to my internal drive's EFI partition (and installed it in the recovery environment) but every time I update macOS on my main drive or an external drive, which is frequently due to the nature of my work, macOS sets itself back as the main startup disk and I have to boot back into the recovery environment to rebless refind. This is a pain in the ass.

I noticed that refind has the option of installing itself on to a separate HFS+ partition using the --ownhfs option, which is supposed to allow selecting that partition in the Startup Disk system preferences. I thought that'd be a good solution since every time I update macOS, all I'd need to do is use that pref pane to set the startup disk back to refind. So I made the partition and installed refind to it in the recovery environment. Everything worked okay so far.

However, as soon as I tried to use the Startup Disk pref pane to change my startup disk back to refind, it would give me an error that reads "Running bless to place boot files failed". Here is a screenshot of the error:

Running bless to place boot files failed

Is there anything I can do to get this working? Or is it perhaps the case that this particular feature of refind (installing with --ownhfs) no longer works with macOS 10.14?

Please note that I cannot disable system integrity protection on my system because I routinely need to test software that requires it to be fully enabled. I'm hoping there's a solution that allows me to more easily set refind as the startup disk without disabling SIP.

Best Answer

First of all, you do not need to disable System Integrity Protection (SIP) to install rEFInd. Second, you do not need use the bless command to make rEFInd the default on startup. Third, while installing to a HFS+ partition does work on a 2015 Mac, eventually this will no longer be possible on the 2018 and newer Macs. (See the recently posted question: Bless error when installing rEFInd)

As for your specific question, recent versions of macOS will not allow rEFInd to be selected from System Preferences. However for a 2015 Mac, you should be able to select rEFInd as the default on startup by using the Mac's Startup Manager. Restart the Mac and immediately hold down the option key until the Startup Manager icons appear. Next, hold down the control key while selecting the partition rEFInd is installed on. In your case, this partition should by default be labeled the same as HFS volume. Now on subsequent starts, the Mac should boot to rEFInd.

I should also point out that if Windows is installed with the Windows Support Support software, then rEFInd may be set as the default at startup from the Windows Control Panel. This option is only possible when rEFInd is properly installed to a HFS+ partition.

Note: The rEFInd Boot Manager can also be installed 2015 or newer Macs to either an EFI partition or a MSDOS (FAT) formatted partition. You can use the default EFI partition or on any additional EFI partition of your choose to add. If installed properly, rEFInd can be blessed by the Startup Manager.

One final comment. If you install rEFInd to a MSDOS FAT partition, then you can change the default operating system, that rEFInd will boot, directly from macOS, Windows or Linux. This can be done by using a text editor or by installing a script. (The use of these scripts is shown in this answer.) The same is true if rEFInd is install to an EFI partition, except accessing the EFI partition usually requires elevated permissions.