Run Vanilla OS X El Capitan, Sierra, High Sierra or Mojave in VMware Workstation on a Windows Host
I wanted to make a simple guide on how to create a vanilla OS X El Capitan virtual machine running on a Windows host. The virtual machine should be useful for testing El Capitan and also for creating installers for use on a real machine/hackintosh.
There are many guides and videos on the net about running OS X on Windows machines using pre-made VMWare disk images but you can never guarantee what else is in there….
I’ve gathered info for this guide from various threads in the Multibooting and Virtualisation section of this forum eg
Workstation 11/12, Player 7/12, Fusion 7/8 and ESXi 6 Mac OS X Unlocker 2 by @Donk How to Install OS X 10.x from Snow Leopard to El Capitan in VMware Workstation 10/12, Player 6/8 or ESXi 5/6 by @MSOK HOW TO: Create a bootable El Capitan ISO for VMware Credit and thanks to @Donk, @Albert Nietsnie and @MSOK for all their hard work in creating and testing the VMware Unlocker program.
Intel PC with four or more CPU cores running Windows 7 X64 or later OS (2 or more cores needed for OS X) 4GB or more RAM (2GB or more will be needed for OS X) Hard Disk with at least 40GB free for Virtual Machine VMware Workstation 12 or later VMware Unlocker 2.0.7 or later Install OS X El Capitan app and Mac or Hack to prepare installation iso <-- Now, no longer necessary to have previous access to a Mac or Hack by building the Installer.app from scratch - see post#41 16GB or larger exFAT formatted USB stick to transfer El Capitan iso from Mac/Hack to Host PC Prepare Installation ISO on your Mac or Hack
1. On your Mac or Hack, download "Install OS X El Capitan.app" from the App Store into your Applications folder.
2. Unmount any attached install image/InstallESD.dmg (if currently mounted) by rebooting the system or running the hdiutil unmount command in terminal eg
3. Download and unzip the CECI.tool (attached to this post) into your ~/Downloads folder. The commands in this executable script are shown below for informational purposes….
4. Open OS X terminal, then run the following commands to execute the script:
cd downloads chmod +x CECI.tool ./CECI.tool 5. At the end of the process, you will have an El Capitan iso on your desktop - copy this onto an exFAT formatted USB for use on the PC Host later.
@shela has created an ISO generating script compatible with OS X 10.6-10.12: create_osx_iso post #362.
See post#30 for macOS_iso_cim.tool script to create ISO for macOS 10.13+ using Apple's createinstallmedia utility.
Install and Patch VMware Workstation 12 on your PC
1. Download and install VMWare Workstation Player 12 or later
2. Download and extract Unlocker 2.0.7 or later to your USB stick…
3. Run the win-install.cmd as administrator by right clicking the file in Windows explorer or run it from an Administrative Command Prompt.
Create an El Capitan Virtual Machine
1. Double click on the VMware Workstation 12 Player icon on your desktop and click “Create a New Virtual Machine”. Choose “I will install the operating system later” at the How will you install screen….
2. Select Apple Mac OS X as the Guest operating system and OS X 10.11 as the version. By default, an OS X 10.11 folder will be created in your Documents\Virtual Machines folder.
3. Under Specify Disk Capacity, you can leave the default 40GB or set a larger value. I personally store the virtual disk as a single file. Click Finish and you will see OS X 10.11 on the Main Screen of Workstation 12.
4. Next, we need to edit the virtual machine settings to map the virtual SATA CD/DVD drive to the El Capitan installation iso we created earlier.
5. To prevent the virtual machine from crashing in Windows, the virtualHW.version set in the vmx configuration file needs to be changed from 12 to 10 (alternatively, the line smc.version = "0" can be added to the file). The OS X 10.11.vmx file can be edited with the WordPad program (navigate to the OS X 10.11 virtual machine folder with Windows Explorer and right click on the file to open in WordPad).
6. For HW10, set USB compatibility to USB 2.0, otherwise your mouse and keyboard might not work in the virtual machine.
7. Finally click “Play virtual machine”
Installation of El Capitan
Installation should be relatively straight forward, just following the prompts of the OS X installer:
1. Select language, agree to legal terms
2. Use Disk Utility from the Utilities Menu to erase and format the virtual hard drive as a single partition GUID Mac OS X Extended. I’ve named the drive Macintosh HD but you can enter whatever you like eg El_Capitan.
3. Quit DU and choose Macintosh HD to install El Capitan on.
4. After 20-30 min (depending on how fast your system is), the installation will complete and the VM will automatically reboot…
5. At the welcome screen, choose your country and keyboard layout. You can skip transfer information, location services and logging in with your Apple ID if you wish…
6. Create a User Account and select your Time Zone. You can skip sending diagnostics and usage data to Apple….
7. Finally, you will arrive at the El Capitan Desktop. You should eject the Installation iso now by right clicking and selecting “Eject OS X Base System”. This will allow you to install VMware Tools….
8. After rebooting, the VM can now be resized or run at full screen resolution. Audio and network/internet should also work OOB.
SMBIOS Customization and iMessage Vars
To make the Virtual Machine more "Mac like", you can edit the vmx file to add unique identifiers from a real Mac's SMBIOS -
eg for an iMac 11,3 SMBIOS, you can enter the following lines....
smbios.reflectHost = "FALSE" board-id.reflectHost = "FALSE" board-id = "Mac-F2238BAE" hw.model.reflectHost = "FALSE" hw.model = "iMac11,3" serialNumber.reflectHost = "FALSE" serialNumber = "W80#######6" Refer How to spoof real Mac in VMware - Multi-booting and Virtualisation.
The critical variables for iMessage/Facetime activation are MLB & ROM. By default, VMware "reflects" the host's MLB and ROM since it assumes you are running the OSX guest on a real Mac host - see post#42 by @Donk.
If the host is a Windows PC, the following lines need to be added to the vmx file (requires virtualHW.version 12 and smc.version = "0")....
efi.nvram.var.ROM.reflectHost = "FALSE" efi.nvram.var.MLB.reflectHost = "FALSE" system-id.enable = "TRUE" and the MLB, ROM and optionally system-id entered manually eg
efi.nvram.var.MLB = "W80######BA1A" (MLB can be 13 or 17 characters long, alphanumeric string) efi.nvram.var.ROM = "<=>?@A" (ROM is entered here as a 6 character ASCII string) uuid.bios = "## ## ## ## ## ## ## ##-## ## ## ## ## ## ## ##" <---Optional (if you want to inject a given system-id hexadecimal value) Note the output for ROM from imessage_debug is a 12 character hexadecimal that needs to be entered here as a 6 character ASCII string eg using an Hex to ASCII converter we find that "3c3d3e3f4041" hex is equivalent to "<=>?@A".
Vanilla Mavericks and Yosemite
The same VM settings for El Capitan will also boot and run vanilla installations of OS X Mavericks and Yosemite . Attached to this post are installer scripts to create bootable Mavericks (CMI.tool) and Yosemite (CYI.tool) ISOs for VirtualBox and VMware.
With the respective OS X installer apps in the Applications folder, download and run the installer tools using terminal ie
To create a Mavericks ISO on your desktop
cd downloads chmod +x CMI.tool ./CMI.tool To create a Yosemite ISO on your desktop
cd downloads chmod +x CYI.tool ./CYI.tool Here is a screenshot of the VM running Mavericks 10.9.5...
Update for macOS 10.12 Sierra
The above settings still work for macOS Sierra after upgrading to VMware Workstation 12.5 and unlocker 2.0.8 - see post #13.
Update for macOS 10.13 High Sierra and 10.14 Mojave
See post#30 for macOS_iso_cim.tool script to create ISO for macOS using Apple's createinstallmedia utility.
Post#41 describes how to build "Install macOS ******.app" on the fly from installer files downloaded beforehand in /SharedSupport folder.
Update for macOS 10.15beta Catalina
See post Update for macOS Catalina 10.15beta
This version of VMware Unlocker is modified to support VMware Workstation 14. It has not undergone extensive testing, but from the little I have used it, it appears to be working properly on VMware Workstation 14.
The original VMware Unlocker is available here: http://www.insanelymac.com/forum/files/file/339-unlocker/
The changes that were made to the code to enable this patcher to work are available here: http://www.insanelymac.com/forum/topic/303311-workstation-1112-player-712-fusion-78-and-esxi-6-mac-os-x-unlocker-2/?p=2503855. Other than this change, only the install scripts and the patcher exe for Windows was modified.
Mac OS X Unlocker for VMware V2.0
Please ask questions in this thread http://www.insanelymac.com/forum/topic/303311-workstation-1112-player-712-fusion-78-and-esxi-6-mac-os-x-unlocker-2/
Unlocker 2 is designed for Workstation 11, Player 7, ESXi 6 and Fusion 7.
If you are using an earlier product please continue using Unlocker 1
Version 2 has been tested against:
Workstation 11/12 on Windows and Linux
Player 7 & Workstation Player 12 on Windows and Linux
Fusion 7/8 on Mavericks and Yosemite
The patch code carries out the following modifications dependent on the product
Fix vmware-vmx and derivatives to allow Mac OS X to boot
Fix vmwarebase .dll or .so to allow Apple to be selected during VM creation
Fix libvmkctl.so on ESXi 6 to allow use with vCenter
Download a copy of the latest VMware Tools for OS X
Note that not all products recognise the darwin.iso via install tools menu item.
You will have to manually mount the darwin.iso for example on Workstation 11 and Player 7.
The vmwarebase code does not need to be patched on OS X or ESXi so you will see a
message on those systems telling you that it will not be patched.
In all cases make sure VMware is not running, and any background guests have
The code is now Python as it makes the Unlocker easier to run and maintain on ESXi.
There are some challenges to write the code as ESXi has a subset of Python 2.7 which
constrains some modules that can be used.
The code requires Python 2.7 to work. Most Linux distros, ESXi and OS X ship with a compatible
Python interpreter and should work without requiring any additional software.
Windows has a packaged version of the Python script using PyInstaller, and so does not
require Python to be installed.
If you are using VMware Player or Workstation on Windows you may get a core dump.
Latest Linux and ESXi products are OK and do not show this problem.
If you create a new VM using version 11 hardware VMware will stop and create a core dump.There are two options to work around this issue:
1. Change the VM to be HW 10 - this does not affect performance.
2. Edit the VMX file and add:
smc.version = "0" |
On Windows you will need to either run cmd.exe as Administrator or using
Explorer right click on the command file and select "Run as administrator".
win-install.cmd - patches VMware
win-uninstall.cmd - restores VMware
win-update-tools.cmd - retrieves latest OS X guest tools
On Linux you will need to be either root or use sudo to run the scripts.
You may need to ensure the Linux scripts have execute permissions
by running chmod +x against the 2 files.
lnx-install.sh - patches VMware
lnx-uninstall.sh - restores VMware
lnx-update-tools.cmd - retrieves latest OS X guest tools
6. Mac OS X
On Mac OS X you will need to be either root or use sudo to run the scripts.
This is really only needed if you want to use client versions of Mac OS X.
You may need to ensure the OS X scripts have execute permissions
by running chmod +x against the 2 files.
osx-install.sh - patches VMware
osx-uninstall.sh - restores VMware
You will need to transfer the zip file to the ESXi host either using vSphere client or SCP.
Once uploaded you will need to either use the ESXi support console or use SSH to
run the commands. Use the unzip command to extract the files.
<<< WARNING: use a datastore volume to run the scripts >>>
Please note that you will need to reboot the host for the patches to become active.
The patcher is embbedded in a shell script local.sh which is run at boot from /etc/rc.local.d.
You may need to ensure the ESXi scripts have execute permissions
by running chmod +x against the 2 files.
esxi-install.sh - patches VMware
esxi-uninstall.sh - restores VMware
1. Any changes you have made to local.sh will be lost. If you have made changes to
that file, you will need to merge them into the supplied local.sh file.
2. The unlocker runs at boot time to patch the relevant files and it now survives
an upgrade or patch to ESXi as local.sh is part of the persisted local state.
Thanks to Zenith432 for originally building the C++ unlocker and Mac Son of Knife
(MSoK) for all the testing and support.
Thanks also to Sam B for finding the solution for ESXi 6 and helping me with
debugging expertise. Sam also wrote the code for patching ESXi ELF files.
Removed need for Python for Windows
darwin.iso was missing from zip file
Added EFI firmware files to remove Server check
Refactored Python code
Added View USB Service to Windows batch files
Fixed broken GOS Table patching on Linux
ESXi 6 working
Latest tools from Fusion 7.1.2
ESXi 6 patch for smcPresent vCenter compatibility
Workstation 12 on Linux fixes
Player 12 on Linux fixes
Get latest VMware tools command
Removed firmware files
Moved to PyInstaller 3.0
© 2011-2015 Dave Parsons
I'm tyring to run iATKOS S3 V2 on VMware Fusion 6(on Mavericks). I tried to set up Fusion with the iso file but when I start the VM, it says "The guest operating system is not MacOS X Server". Then I have downloaded the Fusion Unlocker v1.2.0 but I can't seem to get it to work. I have taken the execution permissions for the files install.sh, uninstall.sh and Unlocker.osx file by running the following commands,
sudo chmod +x /Users/tim/Desktop/VMware/unlock-all-v120/osx/install.sh sudo chmod +x /Users/tim/Desktop/VMware/unlock-all-v120/osx/uninstall.sh sudo chmod +x /Users/tim/Desktop/VMware/unlock-all-v120/osx/unlocker.osx Then I tried to run the install.sh script using the command,
sudo /Users/tim/Desktop/VMware/unlock-all-v120/osx/install.sh But I get this error message,
TimBok:~ tim$ sudo /Users/tim/Desktop/VMware/unlock-all-v120/osx/install.sh Password: VMware Unlocker 1.2.0 =============================== Copyright: Dave Parsons 2011-13 Patching... /Users/tim/Desktop/VMware/unlock-all-v120/osx/install.sh: line 12: ./Unlocker.OSX: No such file or directory TimBok:~ tim$ I need to know what I can do here to get rid os this issue and run the VM.