4

I have an instance of OS X El Capitan running on VMWare Workstation 10. I need to make changes to /System and therefor have to disable System Integrity Protection. How do I access recovery mode on this VM so I can disable SIP?

  • You can have a look at this question : apple.stackexchange.com/questions/208478/… – dhruvvyas90 Oct 14 '15 at 6:31
  • Are you able to boot into Recovery Mode on a VMWare instance? Can you mount the VMWare instance as an external drive and make the modifications that way? – Graham Miln Oct 14 '15 at 8:15
  • @GrahamMiln I have tried to boot into recovery mode by holding down the Super key + R during the VMs startup but it just boots normally. – ecnepsnai Oct 14 '15 at 15:20
  • 1
    VMware does not support virtualizing OS X under VMware Workstation and you are violating the Apple SLA for OS X by doing so! – user3439894 Oct 15 '15 at 1:59
6

I know this is an older question but I came across it looking for a solution to this problem so I figured I would submit an answer that contains all of the info I came across in one place.

Background

My environment:

Host:

  • Windows 10
  • VMWare Workstation 12 (patched to run macOS)

Guest:

  • macOS High Sierra 10.13.4

I originally tried adding macosguest.forceRecoveryModeInstall = "TRUE" to my .vmx config. This allowed me to boot into recovery and could disable SIP but then I couldn't get the VM to boot normally, even after removing that line.

The solution to this problem I found was to just delete the .nvram file. Unfortunately, that's where the flag to disable SIP is stored so when my VM came back up SIP was enabled again.

My Solution

  1. Completely shutdown the macOS guest
  2. In your .vmx config, add the line bios.bootdelay = 2000 to pause for 2 seconds on the gray VMWare POST screen before booting
  3. Press and hold ⊞ Win + R when the POST screen comes up and hold it until the Boot Manager appears
  4. Select EFI Internal Shell (Unsupported option)
  5. At the Shell> prompt, type fs2:\com.apple.recovery.boot\boot.efi and press Enter to boot into recovery
  6. From the menu bar click Utilities > Terminal
  7. Run csrutil disable from the terminal, followed by reboot
  8. Once your VM has rebooted normally you can verify that SIP was disabled by opening a terminal and running csrutil status

To turn SIP back on, follow the same steps as above but run csrutil enable at the recovery terminal instead.

Note: You'll probably want to remove the line that was added to the .vmx config so you don't have to wait that extra couple of seconds each time you power on your VM.

  • I'm trying to follow your workaround with Mojave on Vmware Workstation 14 on Windows 7, but didn't find fs2:\ is there something else to do ? – M. Abdelhafid Sep 18 '18 at 11:06
  • 1
    finally, it worked like a charm with your way, hanging on this stuff for hours. – Nijat2018 Apr 9 at 7:23
  • 1
    confirm this works in esxi 6.7 / high sierra – Johnny Everson Aug 8 at 1:19
4

VMware has an answer to this question. See Using the Recovery Environment (Recovery HD) in an OS X Virtual Machine:

  1. Power on the virtual machine.
  2. Quickly, in the blank black window or at the VMware splash screen, click inside the virtual machine window so that the mouse pointer disappears. Now your keystrokes will go into the virtual machine.
  3. Quickly, before the Apple logo appears, press and hold the Command ⌘ key and the R key together.
  4. Once you see the Apple logo appear, release the keys.

If you completed steps 1 through 3 quickly enough, the virtual machine will boot into the Recovery Environment.

  • 1
    So I tried your solution (although replacing the Command key with the Windows/Super key) and it didn't work. I also tried setting rootless=1 as a bootarg in NVRAM, but I think Apple took that away with the GM seed of 10.11. Would taking the virtual disk from VMWare workstation and adding it to a VM on VMWare Fusion and doing it from there be an option? – ecnepsnai Oct 15 '15 at 5:13
  • 2
    This is probably due to the fact that the Super and Command keys are not exactly the same thing. The key maps are probably different. As stated earlier, the OS X license only allows you to run virtual instances from a Mac host. – Kevin G. Oct 15 '15 at 18:08
1

This option is valid for vCenter, not sure about Workstation.

You might have a machine that boots very fast and are unable to hit keys in time.

Click on VM and select tab Summary and then under VM Hardware -> Edit Settings: VM Options: Boot Options: Boot Delay Enter 5000 as milliseconds ( 5 seconds ).

Restore settings when done to avoid unnecessary boot delay in future.

1

I take a hint from a comment in this blog post and realize that disabling SIP in guest VM is actually simple.

  1. In VMWare boot screen, click F12 to enter BIOS setup
  2. Select Boot Maintenance Manager > Boot From File
  3. Select the recovery HD and pick the right efi
  4. After booting into recovery mode, start Terminal
  5. Execute csrutil disable
0

I was able to get this working on my Windows VMware install after many tries. (And yes I know I'm not supposed to do that, but I'm also not supposed to drive over 55 MPH either). In hindsight, my mistakes were either not using the correct key combo, or not holding it long enough.

I had to edit the VM config file (.vmx, in the virtual machine folder) to add the 5 second delay. Then the correct key combo on a Windows keyboard was Windows-R, and I had to press that once and hold it for the 10 seconds or so until the apple logo appeared. Then it went through what seemed to be the normal boot sequence, but at the end put me into recovery mode where I could bring up a terminal window, and type

csrutil disable

Finally, exactly what I needed to get my screen resolution back!

  • Please mention at least the statuatory tires to fit ehhm no, the precise line(s) to add in the vmx if you are driving faster than 55MPH – klanomath Oct 16 '16 at 17:24
  • Well, I got pretty close. I got to the macOS Utilities screen, then Utilities and then Terminal. But I can't type anything in the Terminal window. The mouse cursor changes to a small plus-sign and clicking in Terminal's client window does not appear to shift the focus to Terminal (or if it does, it's just ignoring the keystrokes). Hmmmmm.....??? – mbmast Oct 24 '16 at 6:54
-1

VMware Workstation 12 on Windows 10.

The steps does work. It will boot into a window that let u reinstall the OS, disk utilities, and two other options (I can' remember).

Then above you will see "Window" click it and you will see a drop down that allow access to terminal.

then type:

csrutil disable

Restart the VM.

  • Could you please go into further details? Frankly I did not understand one bit of what you wrote... – Garex May 24 '18 at 19:25

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .