Terminalogy: "boot via EFI" really means that you are booting using OpenCore. That is, you are actually starting OpenCore and it is setting the correct "environment" to boot the selected OS.
Once Opencore is setup to boot your default OS via Control+Enter from the boot picker (e.g. Sonoma) then it's always going to boot that OS until you hold the Opt/Alt key on restart and then you can still select Mojave that OpenCore will boot for you...that is not much of "detour".
There's no reason not to use OpenCore to be your default boot loader instead of trying to switch between native boot loader and OpenCore.
The reason you can boot Mojave and newer OS's like Monterey is because in the OpenCore config file, SecureBootModel=False
. If it was set to Default
then Mojave will not boot from the OpenCore boot picker at all.
It is slightly more complex since some Macs do not offer an EFI boot screen and use different OC configurations:
Some Macs uses
SMBIOS
spoofing to more recent models (like
iMacPro1,1
and
MacPro7,1
), especially when using metal GPUs. The iMacPro1,1 has not been supported with Sierra, the MacPro7,1 has not been supported with High Sierra, so booting through OC will fail with the famous stop sign.
You can come around this in these particular cases by adding the
-no_compat_check
to the
boot-args
.
Does this make any sense? Yes, in case you have a modern Polaris+ type of GPU some features of the GPU can only be enabled with OpenCore and SMBIOS
spoofing, this applies even to Mojave and before running on the cMP (or High Sierra and older on iMacs). Using a cMP there is no need to boot OC when having a metal NVIDIA dGPU installed, using some iMacs with some NVIDIA dGPU you will loose brightness control when avoiding OpenCore booting.
All cMP and all iMacs upgraded with metal GPUs can have an
EFI boot screen using the standard alt/option keys. This is a DIY project. This is the most important upgrade you can have and it avoids a bunch of problems during normal system maintenance.
Apple does not use the EFI partition to boot, only to stage firmware upgrades. Windows, Linux, and OpenCore use the same EFI partition existing only once on a single disks to save the boot loader, unfortunately you cannot have them all there at the same time. OpenCore can be moved to a 2nd 200mb FAT partition (OCLP docs), Linux can be integrated into OpenCore using OpenBootLinux (look configuration up), Windows can be integrated in UEFI mode (OCLP docs).
BTW:
In general the term EFI boot picker is associated to the alt/option Apple boot picker! When reaching this Apple specific EFI picker you can choose to boot either another boot loader like OpenCore or an installed supported macOS version or a legacy Windows installations.
The emulated boot picker shown using the
OpenCanopy driver is more the UEFI boot picker.