For now I erased Macintosh HD, deleted Macintosh HD - Data, reinstalled Catalina with Internet, it downloaded and installed, (maybe this?) then the choosing country windows popped up, I holded the power on/off button, turned off the Mac, then turned it on in recovery mode and did all steps described above. IO80211Family cannot be injected in this case, as it is already present in the kernelcache; Unsigned and several signed kernel drivers cannot be used This includes Nvidia's Web Drivers in 10.13; System volume alterations on operating systems with sealing, like macOS 11, may result in the operating system being unbootable. In the sidebar of Disk Utility, choose the hard drive partition where you want Catalina installed, and erase it by using the “Erase” tab. You can also just erase the entire hard drive. In the screenshot below, my two hard drive partition is called “Macintosh HD”, while my entire hard drive is called “Apple SSD macOS-0 SSD Media”.
- Catalina Cannot Be Installed On Macintosh Hd
- Why Can't Macos Catalina Be Installed On Macintosh Hd
- Can't Be Installed On Macintosh Hd
- Catalina Cannot Be Installed On Macintosh Hd
- Note: DmgLoading, SecureBootModel and ApECID require OpenCore 0.6.1(opens new window) or newer
- Note 2: macOS Big Sur requires OpenCore 0.6.3+ for proper Apple Secure Boot support
# What is Apple Secure Boot
Mac: Macintosh HD Applications Native Access; Windows: C: Program Files Native Instruments Native Access; Install the latest version of KONTAKT or KONTAKT Player, if available. In the tab Not installed, find the Library that you want to set up and click ADD LIBRARY: Click the BROWSE button: Navigate to the Library folder. In the sidebar of Disk Utility, choose the hard drive partition where you want Catalina installed, and erase it by using the “Erase” tab. You can also just erase the entire hard drive. In the screenshot below, my two hard drive partition is called “Macintosh HD”, while my entire hard drive is called “Apple SSD macOS-0 SSD Media”.
- Information based off of vit9696's thread(opens new window), Apple's T2 docs(opens new window) and Osy's Secure Boot page(opens new window)
To best understand Apple Secure Boot, lets take a look at how the boot process works in Macs vs OpenCore in regards to security:
As we can see, there's several layers of trust incorporated into Apple Secure Boot:
OpenCore will verify the boot.efi manifest (e.g. boot.efi.j137ap.im4m) to ensure that boot.efi was signed by Apple and can be used by this Secure Boot model.
- For non-zero ApECID, OpenCore will additionally verify the ECID value, written in the boot.efi manifest (e.g. boot.efi.j137ap.XXXXXXXX.im4m), to ensure that a compromised hard drive from a different machine with the same Secure Boot model cannot be used in your computer.
boot.efi will verify the kernelcache to ensure it has not been tampered with
apfs.kext and AppleImage4 ensure your System Volume's snapshot has not been tampered with(Only applicable with Big Sur+)
Not all of these verifications are required to boot, but they're all possible for those who want maximum security. Currently information regarding firmware-based Secure Boot is not covered however all Apple Secure Boot options are detailed below.
# DmgLoading
Quite a simple setting however important in regards to Apple Secure Boot. This setting allows you to set load policy with DMGs in OpenCore. By default we recommend using Signed
however for best security Disabled
may be preferred.
Possible options for Misc -> Security -> DmgLoading
:
Value | Comment |
---|---|
Any | Allows all DMGs to load in OpenCore, however this option will cause a boot failure if Apple Secure Boot is enabled |
Signed | Allows only Apple-signed DMGs like macOS installers to load |
Disabled | Disables all external DMG loading, however internal recovery is still allowed with this option |
# SecureBootModel
SecureBootModel is used set the Apple Secure Boot hardware model and policy, allowing us to enable Apple's Secure Boot with any SMBIOS even if the original SMBIOS did not support it(ie. no T2 present on pre-2017 SMBIOS). Enabling SecureBootModel is the equivalent of 'Medium Security'(opens new window), for Full Security please see ApECID
Currently the following options for Misc -> Security -> SecureBootModel
are supported:
Value | SMBIOS | Minimum macOS Version |
---|---|---|
Disabled | No model, Secure Boot will be disabled. | N/A |
Default | Currently set to j137, iMacPro1,1 | 10.13.2 (17C2111) |
j137 | iMacPro1,1 (December 2017) | 10.13.2 (17C2111) |
j680 | MacBookPro15,1 (July 2018) | 10.13.6 (17G2112) |
j132 | MacBookPro15,2 (July 2018) | 10.13.6 (17G2112) |
j174 | Macmini8,1 (October 2018) | 10.14 (18A2063) |
j140k | MacBookAir8,1 (October 2018) | 10.14.1 (18B2084) |
j780 | MacBookPro15,3 (May 2019) | 10.14.5 (18F132) |
j213 | MacBookPro15,4 (July 2019) | 10.14.5 (18F2058) |
j140a | MacBookAir8,2 (July 2019) | 10.14.5 (18F2058) |
j152f | MacBookPro16,1 (November 2019) | 10.15.1 (19B2093) |
j160 | MacPro7,1 (December 2019) | 10.15.1 (19B88) |
j230k | MacBookAir9,1 (March 2020) | 10.15.3 (19D2064) |
j214k | MacBookPro16,2 (May 2020) | 10.15.4 (19E2269) |
j223 | MacBookPro16,3 (May 2020) | 10.15.4 (19E2265) |
j215 | MacBookPro16,4 (June 2020) | 10.15.5 (19F96) |
j185 | iMac20,1 (August 2020) | 10.15.6 (19G2005) |
j185f | iMac20,2 (August 2020) | 10.15.6 (19G2005) |
x86legacy | Non-T2 Macs in 11.0(Recommended for VMs) | 11.0.0 |
# Special Notes with SecureBootModel
- Generally
Default
is more than adequate to use however if you plan to have use this with ApECID for full security, we recommend setting a proper value(ie. closest to your SMBIOS or versions of macOS you plan to boot) since theDefault
value is likely to be updated in the future.x86legacy
is not required for normal Mac models without T2's, any of the above values are supported.
- The list of cached drivers may be different, resulting in the need to change the list of Added or Forced kernel drivers.
- ie. IO80211Family cannot be injected in this case, as it is already present in the kernelcache
- Unsigned and several signed kernel drivers cannot be used
- This includes Nvidia's Web Drivers in 10.13
- System volume alterations on operating systems with sealing, like macOS 11, may result in the operating system being unbootable.
- If you plan to disable macOS's APFS snapshots, please remember to disable SecureBootModel as well
- Certain boot errors are more likely to be triggered with Secure Boot enabled that were previously not required
- Commonly seen with certain APTIO IV systems where they may not require IgnoreInvalidFlexRatio and HashServices initially however Secure Boot does.
- On older CPUs (ie. before Sandy Bridge) enabling Apple Secure Boot might cause slightly slower loading by up to 1 second
- Operating systems released before Apple Secure Boot landed (ie. macOS 10.12 or earlier) will still boot until UEFI Secure Boot is enabled. This is so,
- This is due to Apple Secure Boot assuming they are incompatible and will be handled by the firmware just like Microsoft Windows is
- Virtual Machines will want to use
x86legacy
for Secure Boot support- Note using any other model will require
ForceSecureBootScheme
enabled
- Note using any other model will require
Due to an annoying bug on Apple's end, certain systems may be missing the secure boot files themselves on the drive. Because of this, you may get issues such as:
Catalina Cannot Be Installed On Macintosh Hd
To resolve, run the following in macOS:
Now you can enable SecureBootModel and reboot without issue! And since we're not editing the system volume itself we don't need to worry about disabling SIP or breaking macOS snapshots.
Why Can't Macos Catalina Be Installed On Macintosh Hd
# ApECID
ApECID is used as an Apple Enclave Identifier, what this means is it allows us to use personalized Apple Secure Boot identifiers and achieve 'Full Security'(opens new window) as per Apple's secure boot page(when paired with SecureBootModel).
To generate your own ApECID value, you'll want some form of cryptographically secure random number generator that will output a 64-bit integer. Below we provide an example that can be run if Python 3(opens new window) is installed on your machine:
With this unique 64-bit int, you can now enter it under Misc -> ApECID in your config.plist
Can't Be Installed On Macintosh Hd
However before setting ApECID, there's a few things we need to note:
- Fresh installs with ApECID set to a non-zero value will require a network connection at install time for verification
- SecureBootModel should have a defined value instead of
Default
to avoid issues if the value were to change in later OpenCore versions. - Pre-existing installs will need to personalize the volume, for this you'll need to first reboot into recovery and run the following command(Replace
Macintosh HD
with your system's volume name):
Catalina Cannot Be Installed On Macintosh Hd
And something to note when reinstalling macOS 10.15 or older is that you may receive 'Unable to verify macOS' error message. To work around his issue, you'll want to allocate a dedicated RAM disk of 2 MBs for macOS personalization by entering the following commands in the macOS recovery terminal before starting the installation: