Home > create_macos_recovery, Mac administration, macOS, macOS Recovery, Scripting > Rebuilding your macOS Recovery volume or partition with create_macos_recovery

Rebuilding your macOS Recovery volume or partition with create_macos_recovery

I recently got an email from a former colleague, requesting assistance with a problem they were seeing. They were cloning drives with macOS Catalina, but their cloning process was not including the Recovery volume. Was there a way to create a new Recovery volume on a macOS Catalina boot drive that didn’t have one?

I did some research on this and found that there was a script to do this on High Sierra and Mojave, but it didn’t appear to work anymore.

With some more digging, I was able to figure out why. The script was downloading and expanding a macOSUpd10.13.6.RecoveryHDUpdate.pkg installer package from Apple’s Software Update service in order to get access to a dm tool included with the installer package. This installer package was no longer available from the Software Update service, but a similar package named SecUpd2019-005HighSierra.RecoveryHDUpdate.pkg with the same dm tool was available.

Once I verified that I could get the same results using the SecUpd2019-005HighSierra.RecoveryHDUpdate.pkg installer package, I wrote a script (based on the original one I had found) to help automate the process of rebuilding a macOS Recovery volume or partition. For more details, please see below the jump.

Downloading the script

The create_macos_recovery script is available from the following location:

https://github.com/rtrouton/create_macos_recovery

Once you have the script downloaded, run the create_macos_recovery script using root privileges with one argument:

  • The path to an Install macOS.app

Using the script

If you have a macOS Catalina 10.15.0 installer application available in your Mac’s /Applications directory, run this command with root privileges:

/path/to/create_macos_recovery.sh "/Applications/Install macOS Catalina.app"

Screen Shot 2019-10-20 at 10.50.48 PM

If successful, you should see output like this appear:

Once the script has finished running, you should be able to verify that you can boot into Recovery.

Screen Shot 2019-10-20 at 10.55.04 PM

Testing notes

Before any use in production, I strongly recommend testing this script on test systems and verifying that this also works for you. Please see below for what I have tested this script with:

OS versions:

  • macOS 10.13.6
  • macOS 10.14.6
  • macOS 10.15.0

OS installers:

  • Install macOS High Sierra.app (for 10.13.6)
  • Install macOS Mojave.app (for 10.14.6)
  • Install macOS Catalina.app (for 10.15.0)

Test systems:

  • Virtual machines running in VMware Fusion 11.5.0

Note: I have only tested on systems where FileVault encryption has not been enabled.

 

  1. Patrick Morton
    October 21, 2019 at 2:15 pm

    Great information. However your line “They were cloning drives with macOS Catalina, but their cloning process was not including the Recovery volume” piqued my interest.. I assume you are not talking about cloning an entire image but something else?

    • October 21, 2019 at 2:45 pm

      I honestly don’t know what process they were using.

  2. FritzscCorner
    October 21, 2019 at 3:43 pm

    It seems like the only way to reinstall Catalina is if FileVault is not enabled. I see you indicated you hadn’t tested on a FileVault encrypted system. In my testing, both local recovery mode and internet recovery mode only give you the option to Reset a users password or erase the drive. Once FileVault has been disabled or the Drive is erased we are then able to boot back into recovery mode (Internet recovery mode if the drive was erased) to reinstall the OS. It adds an extra step to rebuilding Macs that are reclaimed and getting ready for re-deployment. Hopefully I am missing something and there is a better way to do this for Catalina.

  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: