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
-
1VMware 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
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
From the Terminal, run the following commands (thanks to G5tube for this suggestion)
sudo nvram "recovery-boot-mode=unused" sudo reboot recovery
The second command will reboot your Mac instantly, so better save any unfinished work first.
Once the Mac has rebooted into the Recovery / Installer system (you may have to choose your language first): From the menu bar, click
Utilities
>Terminal
Run
csrutil disable
from the terminal, followed byreboot
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.
-
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. A. Sep 18 '18 at 11:06
-
1finally, it worked like a charm with your way, hanging on this stuff for hours. – Nijat2018 Apr 9 '19 at 7:23
-
1
-
1Hold Alt to boot into VMWare's Boot Manager, no need for adding any delay – Shayan Oct 20 '19 at 22:20
-
Btw how did you figure out what to do at VMWare's Boot Manager's Shell? I tried a lit of commands to list disks or filesystems, the only thing that worked was typing
fs2:
and then hitting tab. – Shayan Oct 20 '19 at 22:28
VMware has an answer to this question. See Using the Recovery Environment (Recovery HD) in an OS X Virtual Machine:
- Power on the virtual machine.
- 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.
- Quickly, before the Apple logo appears, press and hold the Command ⌘ key and the R key together.
- 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.
-
1So 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 -
2This 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
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.
I take a hint from a comment in this blog post and realize that disabling SIP in guest VM is actually simple.
- In VMWare boot screen, click F12 to enter BIOS setup
- Select Boot Maintenance Manager > Boot From File
- Select the recovery HD and pick the right efi
- After booting into recovery mode, start Terminal
- Execute
csrutil disable
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
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... – Martin Allert May 24 '18 at 19:25