Home > Mac administration, macOS, VMware > Setting a macOS VM to automatically boot to Recovery HD using VMware Fusion

Setting a macOS VM to automatically boot to Recovery HD using VMware Fusion

When testing various security functions, like System Integrity Protection or High Sierra’s new kernel extension functionality, it’s often useful to be able to boot a macOS virtual machine (VM) into the Recovery environment. However, it can be challenging to select the VM and hold down Command+R in time to boot to the Recovery environment. This can result in having to try several or more times before you can successfully boot the VM to Recovery HD.

Fortunately, VMware has a setting that enables a forced boot to Recovery HD. For more details, please see below the jump.

My colleague mosen discovered that you could add the following setting to a macOS VM’s .vmx configuration file:

macosguest.forceRecoveryModeInstall = "TRUE"

Once this setting has been added to the .vmx configuration file, the VM will automatically boot to Recovery HD the next time it is started.

To add the macosguest.forceRecoveryModeInstall setting to a macOS VM:

1. Shut down the relevant VM.
2. Open the VM’s .vmx file for editing.

Screen Shot 2017 07 31 at 10 26 39 PM

3. Add the following line to the end of the .vmx configuration file:

macosguest.forceRecoveryModeInstall = "TRUE"

Screen Shot 2017 07 31 at 10 29 57 PM

4. Save the changes to the .vmx configuration file.
5. Start the VM.

The VM should boot from the macOS VM’s Recovery HD partition automatically, and will continue to boot to Recovery until the setting is removed from the VM’s .vmx file.

Screen Shot 2017 07 31 at 10 52 18 PM

  1. September 2, 2017 at 10:31 am

    After reboot even though i removed the command string .vmx configuration file the MAC always resumes in recovery mode. What do I do now?

  2. September 2, 2017 at 10:33 am

    After reboot even though i removed the command string .vmx configuration file the MAC always resumes in recovery mode. What do I do now? have I lost everything?

  3. September 8, 2017 at 5:23 pm

    Delete .nvram

    • foo
      February 10, 2018 at 10:28 am

      it worked thanks

  4. November 20, 2017 at 10:55 pm

    I try to disable SIP. When I boot into Recovery mode I can disable SIP. If I delete the .nvram file to boot into normal mode, then the SIP is active again. Any idea how to fix that?

  5. November 21, 2017 at 2:23 pm

    Solution: I had to use a real Mac for that. On the Mac I could boot my 10.13 vm image into Recovery Mode and disable SIP. This created the appropriate “macOS 10.13.nvram” small file which could then be copied to non-Mac hosts. So all the 10.13 vm images are in “sip-disabled” mode.

  6. November 21, 2017 at 3:36 pm

    Solution addendum #1: Pay attention to the file permission of the copied .nvram file. On some systems (eg. Win10) it’s blocked by default if it’s coming from a different system. In this case a freshly created nvram file will have SIP activated again. Check if there has been a new file created in the VM directory. You may have to “unblock” the copied .nvram file by right-clicking on the file – and then choose permissions etc.

  7. February 10, 2018 at 2:53 am

    I just discovered that if my VM uses APFS, I can’t start in macOS Recovery. I can with HFS. I’ve been using vfuse from Joe Chilcote with an AutoDMG dmg with the –recovery flag.

  8. David
    February 12, 2018 at 2:19 pm

    sudo nvram “recovery-boot-mode=unused”
    sudo reboot

    source: http://anandmpandit.blogspot.ch/2017/09/how-to-boot-into-recovery-mode-on-mac.html

  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: