You can try installing refind on an HFS+ partition:
Thanks for the suggestion but the issue is not rEFInd related and I have found a way to bypass it.
Normally when I boot with OC and issue:
sudo systemsetup -getstartupdisk
I get nothing in return. Which means the default boot loader is empty. You only have to select the desired boot disk in startup disks (don't need to reboot).
Correct. When you first want to boot into OC (or any bootloader), you bless the efi file. This removes the standard startup disk as you noted as the blessed file is now the selected efi and
sudo systemsetup -getstartupdisk
gives a null result because that command only recognises the native setup.
What I have been able to deduce is that where OC differs from anything else is that it only needs this EFI Bless for the very first boot, and, as you noted, you can go into system settings and select a different start disk without issue. This is because
OC Bootstrap Image
takes care of things after the first boot when it is apparently put in place.
Actually, when you select a start disk in system settings, you are undoing the EFI Bless and blessing the selected disk instead. However, once OC has been run once, it does not need its EFI to be blessed anymore as it would have created a Bootstrap Image on your system that will control all your boots as from that point on.
This Bootstrap Image cannot be disabled by a standard NVRAM reset including a 3 Chime one.
OC Bootstrap Image
will handle booting according to the rules below after evaluating your config:
- If
RequestBootVarRouting
is true, OC Bootstrap Image
will load OC Proper
OC Proper
will deal with startup disk presence or absence based on other config settings but OC Proper
will always run.
- If
RequestBootVarRouting
is false, OC Bootstrap Image
will check if there is a defined startup disk
- if there is a defined startup disk,
OC Bootstrap Image
will let the Firmware load this
- if there is no defined startup disk,
OC Bootstrap Image
will load OC Proper
Your resetting the disk in system settings just puts things into Situation 1.1 above.
This is perfectly fine if only using OC or chain-loading from OC. Basically any situation where OC is expected to be loaded first.
When trying to chain-load OC from rEFInd it is a different kettle of fish, Situation 2.2, hence my workaround, which is working perfectly well btw.
Thanks again for all your advice. I am good to go even if my request to the OC devs for a built in option is turned down.