- Joined
- Jul 22, 2018
- Messages
- 8,025
- Motherboard
- Supermicro X11SPA-T
- CPU
- Intel Xeon W-3275 28 Core
- Graphics
- 2xAMD RX 580 8GB
- OS X/macOS
- 13.x
- Bootloader
- OpenCore (UEFI)
- Mac
- Mac mini
- MacBook Pro
- Mobile Phone
- Android
- iOS
How to Install macOS on VMware ESXi [Intel/AMD] - PCI Passthrough Guide
Booting the macOS installers on a non-Apple computer can be quite challenging for new users and when it comes to Virtualization, it can be more complex. This guide is intended for those who wish to use Vmware ESXi for installing macOS and it covers a step-by-step process to boot the macOS installer on your target Desktop or Laptop along with the installation and post-installation. Both installing using Windows, macOS, and Linux are described in this guide.By following this guide, you'll also be able to perform a clean installation of the macOS on your target system which is generally not offered with major of the guides present on the internet. This guide supports both Intel and AMD Desktops and Intel and AMD Laptops with UEFI/Legacy boot mode. Of course, the hardware compatibility must be taken care of. Those who have compatible hardware and want to utilize the full features of macOS can follow the macOS Installation Guide using Clover or OpenCore. As this guide also covers PCI passthrough which is the main essence/adventure of this guide, the performance is similar to a bare metal installation.
Although UEFI Capable Systems have several advantages over Legacy, there can be systems that do not support UEFI booting and are only capable of Legacy booting. But if you do have a system that supports UEFI booting, it is recommended to use UEFI booting over the legacy boot.
- If you have a computer that is UEFI capable, follow the UEFI instructions.
- If you have a system that doesn't have UEFI capabilities, then follow the Legacy instructions.
If you're here for Graphics acceleration, welcome to this forum!
Unlike other virtualization platforms like VMware Workstation, and Virtual Box, VMware ESXi is industry-standard, virtualization software which uses type 1 hypervisor and is considered one of the robust virtualization platforms and this is why you can actually have a close performance to a bare metal machine even on a Virtual Machine running on ESXi Host. In addition, you can passthrough a number of PCI devices including the GPU which also supports/is also capable of Graphics acceleration with full QE/CI. Due to all these features and functionality, the performance of an ESXi Virtual Machine is very close to a bare metal machine.
What is VMware ESXi?
VMware Workstation is an industry standard hypervisor for running virtual machines and is available for Windows, Linux, and macOS. Each VM acts like a complete computer, running an operating System and programs. A VMware can have multiple virtual machines, each with its own operating system on the host computer. You can select the operating system that you want to use. You can install different Operating Systems as per your needs such as Windows, macOS, or any distribution of Linux.Is there any difference between VMware ESXi and VMware Workstation/Player?
VMware Workstation Player offers a cost-free option for virtualization, while VMware Workstation Pro requires a license, catering to more advanced and professional needs. Both applications operate seamlessly atop Windows or Linux host Operating Systems, delivering unparalleled performance and versatility.Although most of the features are supported by both versions, a few Security features such as UEFI Secure Boot Support, Snapshots, Create and Manage Encrypted VM, and Advanced features such as Network Customization, Network Simulation, Connecting to vSphere/ESXi Server, Remote vSphere Host Power Control, Creating linked Clones, and encrypting VMs isn't offered in the VMware Player.
Yes, there is a lot of difference. VMware Workstation/Player offers
Does VMware ESXi need a Bootloader?
Unlike Hyper-V, VMware Workstation and Virtual Box do not require any Bootloader like OpenCore or Clover. This not only removes the tedious work of creating a compatible EFI but also provides flexibility when performing updates under macOS as you don't have to keep updating the OpenCore and the kexts along with. Although VMware Workstation is compatible with OpenCore, it should be noted that OpenCore requires additional configuration that is not covered in this guide.However, you may need to use a Bootloader (OpenCore) to drive certain hardware which does not have native support (driver-free) under macOS.
Although the VMware ESXi does not require a Bootloader to run macOS, it does supports bootloaders such as Clover and OpenCore.
Is AMD CPU supported on VMware ESXi?
Unlike bare metal, the AMD CPU isn't supported for booting macOS on VMware Workstation. However, by adding a few parameters in the Virtual Machine Configuration File, you can use VMware on AMD systems for booting macOS. See Enabling AMD CPU Support for more information.Is Graphics acceleration possible in VMware Workstation?
Unlike other platforms,Unfortunately, VMware Workstation doesn't support GPU passthrough, therefore no Graphics acceleration. With 3D acceleration, the guest OS gets access to a virtual GPU that understands GPU specific features such as DirectX. The VM driver+virtual hardware translates the 3D acceleration commands that it receives and executes those on the GPU hardware. Since VMware Workstation 15.5, it uses a special sandboxed process for that.
If you need functionality like Graphics acceleration and PCI Passthrough, VMware ESXi is the way. See installing macOS on VMware Exsi for more information.
Can you passthrough PCI Devices on VMware Workstation?
Does VMware Workstation support iServices?
Is there any performance difference between Bare Metal and VMware?
Yes, there is a lot of performance difference when running macOS on a Bare Metal and VMware Workstation/Player due to the lack of Graphics acceleration which isn't supported by either of the two versions. The system has lots of glitches, and artifacts and you can use it temporarily for executing basic functions on macOS. However, with VMware EXSi, the performance is close to the native/bare metal install. See installing macOS on VMware ESXi for more information.This is because of the lack of Graphics acceleration and unfortunately, the GPU passthrough isn't supported by either of the two versions.
What's the difference between running macOS on a Bare Metal and Hyper-V?
Running macOS on a bare metal means you're running macOS on the native hardware, without any layers in between therefore offering more performance and access to the hardware directly.Can I use the ISO File from somewhere else?
We strongly recommend performing a clean install and then you can export the VHD for latter usage.Is it possible to perform a clean install?
Yes, using this guide, you can perform a clean install of the desired macOS version as long as you meet the requirements.Is it recommended to install macOS on VMware ESXi?
The answer is it depends. If your hardware is supported, installing macOS on bare metal is always recommended due to the ease of the installation and seamless support due to the maximum performance, support and compatibility.If you have a machine with crazy specs and you're in an environment where other users need to use macOS, instead of using a different machine for each user, you can deploy VMware ESXi on the target host and can create multiple VMs for the X number of users who want to use macOS, hence cutting down the infrastructure expenses. This is just not especially for macOS but for other Operating Systems as well as VMware ESXi supports multiple
This just does not especially apply to macOS but to other Operating Systems as well. VMware ESXi supports several major Operating Systems including Microsoft Windows, Ubuntu, and Linux. By utilizing one powerful server, you just not only cut down the IT expenses but can have low maintenance costs as well. low upkeep as well.
You just not only cut down your IT expenses but you'll have a low upkeep as well, offering more uptime and easy management.
macOS Support Table
As of now, the Hyper-V supports the installation of macOS to macOS Sonoma.
macOS version | Status | Minimum Version | Maximum Version |
---|---|---|---|
macOS Sonoma | |||
macOS Ventura | |||
macOS Monterey | |||
macOS Big Sur | |||
macOS Catalina | |||
macOS Mojave | |||
macOS High Sierra | |||
macOS Sierra |
Current Status
Although different models can have different specs and the hardware component/model can differ from manufacturer to manufacturer, here is a list of the current status in terms of functions under macOS.Hardware/Function | Status | Notes |
---|---|---|
Brightness Control | Not working | |
USB Ports | Functional | |
Keyboard | Functional | |
Keyboard Backlight | Working | |
Trackpad | Functional | |
Touchscreen | Working | |
Camera | Working | |
Card Reader | Not working | Intel Card Readers are simply not supported |
Battery | Working | |
Ethernet | Functional | |
WiFi/BT | Functional | Realtek and MediaTek Chipsets are not supported |
Audio | Functional | |
HDMI | Working | |
Power Management | Functional | |
Shutdown/Reboot | Functional | |
Sleep/Wake | Missing/Broken | |
iServices | Functional |
VMware ESXi Compatibility
Recently, we tried out macOS Sonoma on ESXi 8.0 and as soon as the passthrough is enabled and the Virtual Machine is powered on, the ESXi crashes immediately. Although we were able to successfully install macOS Sonoma and it worked fine until the passthrough was configured. Running macOS Ventura in ESXi 8.0 is indeed a little more troublesome than previous versions. The reason is that Apple's transition to ARM architecture has caused VMware to currently not support running ESXi on Apple silicon. VMware ESXi 8.0 no longer officially supports Mac hardware and the new version of macOS Guest OS. Previously, ESXi 7.0 virtualized macOS on Mac was officially supported without any major hiccups.The current tested version against all functionalities for macOS as Guest OS is ESXi 7.X and we highly recommend you to use the same mentioned version to avoid any issues so that your experience is smooth. We recommend you to use ESXi 7.x and not upgrade it to any newer version. Any latter version is not guaranteed to function as intended. Please upgrade ESXi at your own risk and make sure you have sufficient backups and replicas.
Requirements
Following are the requirements for installing macOS on VMware Workstation. Please ensure you meet the requirements before proceeding with this guide.CPU | Intel/AMD CPU. 6 Core or more. 8 or more is recommended. Haswell and later is recommended. macOS Compatible CPU. See Chromebook and Chromebox Compatibility for more information. |
Memory | 16GB or more |
Storage | 50GB of free space on the Windows Drive or a separate drive with 128GB or more capacity. A separate Drive is usually recommended. |
Operating System | Windows 10 or later is recommended. |
Tools | VMware Workstation VMware Unlocker OpenCorePkg |
As VMware comes for Windows, Mac, and Linux, this guide will cover the aspects for all the platforms. However, as most of the users have access to the Windows platform, this guide will be especially focused on Windows.
on Windows, this guide will be especially focused on Windows for creating the Bootable USB.
- But if you have like tons of resource, that can be split into multiple individual machines
- [13:46]
Or use multiple OSes together - [13:46]
Without having the need to reboot
Which PCI Device I can Passthrough?
Technically, you can passthrough common PCI Devices such as GPU (AMD/NVIDIA/Intel), NIC, WiFi/BT, SATA, USB
However, please note that if you passthrough a PCI Device which is being used by the host, the particular device will be disconnected from the host system and you will no longer be able to use that device on the host system.
Please note that the VT-d requirement is a must for Passthrough.
For a Shared disk on the same disk which is being shared, the speeds are pretty good as per the AmorphousDiskMark. The Read and Write speeds are 3500MB/s and 3000MB/s respectively for a PCIe 4.0 Drive.
Except for the PCI Device(s) which are occupied by the ESXi Server, you can pretty much passthrough every PCI Device available on the host computer.
Do I need a VMware ESXi License?
Although, VMware ESXi is available for free (trial) to try. VMware offers 60 days free trial. Once the period is over, you'll need to purchase a license in order to continue using the ESXi. You may consider purchasing a license if you want to use the VMware ESXi any further.
Once the trail period is over,
Download VMware ESXi
Before you can create a VMware ESXi Bootable USB, you'll have to download the VMware ESXi first.
The lat
Visit VMware ESXi
To download, sign in to your VMware account. You can create a new account if you don't have one.
Create VMware ESXi Bootable USB
Download Rufus
Plug a USB Flash Drive
Open Rufus
Select the
Click on Close
CHAPTER X: Booting the ESXi Installer
Adjust the BIOS Settings
Use F12 to enter Boot Menu. Refer to the BIOS manual for the boot key
Select UEFI: USB, Partition 1 (USB) followed by the UEFI prefix and press enter to boot into the ESXi installer. The installer will load in a while. Ensure that the host system is connected to the Ethernet. WiFi are not supported.
Once the VMware ESXi Installer loads up/at welcome screen, press Enter key to continue with the installation.
When at the license agreement page, Press F11 to accept the license terms and continue with the installation. ESXi will scan for the available disks. You can either install or upgrade. Select the Disk on which you want to install VMware ESXi. You can use F1 to check the disk details
When at the disk selection, press enter to confirm the disk selection. Please note that the data will be overwritten. Press enter to continue.
If the disk has an existing VMFS partition, ESXi will give you the options to choose from:
(i)
ii
(iii)
Choose as per your preference and continue with the installation.
Also, please note that downgrading from a higher version to a lower version is not possible with ESXi. And you'll need to wipe the disk out with some tools or using a Live USB and then proceed with the installation.
Select the Keyboard Layout as per your preference and press Enter to continue.
Now, set a password. Please note that the password must meet the minimum password criteria which is a combination of UpperCase+Lower Case+Numeric and the minimum length is 7.
Press F11 to confirm the installation/continue with the installation.
ESXi will partition the disk and copy the required files to the disks.
Once the installation is complete, you'll see a successful message/The installation will be completed in a while. Please note that the ESXi will be in evaluation period for 60 days thenafter, you must register for product license.
Remove the USB Flash Drive and reboot the server.
Press Enter to reboot the host. The server will be rebooted in a while. You can then administrate the server using the console or via the web browser.
Once the server is rebooted, login into the ESXi host using the IP displayed using your favorite browser.
As the SSL Certificate is not installed, you'll get privacy error. Simply proceed with the warning
Login using the root as Username and Password you created during the ESXi installation.
Once you're logged in, you'll get a pop up for joining the Customer Experience Improvement Program. If you want, you can opt in or opt out, as per your preference. Check/uncheck and click on OK.
Creating a Datastore
As you need to upload the macOS image, a datastore needs to be created. By default, VMware ESXi creates a datastore at the time of the installation, on the same boot disk on which ESXi is installed. You can either use that or can use a separate disk to store the images and filesAdd Disk
Before you create a datastore, you must have a physical disk installed. Typically, the boot disk for the ESXi will work without any issue, provided that its at least 250GB or larger capacity. However, if you want to keep VMs on a separate disk, you can prefer to use a separate disks and a lot more space can be allocated for other VMs. In addition, if you want to keep the boot disks as small as possible, adding a secondary fast disk is recommended. Please note that you cannot use External Disks to create a Datastore.
Create Datastore
From the ESXi Host Client, select
Storage
from the left pane.From the top menu, click on Adapters and you can see the list of connected Storage drives and Adapters.
From the Devices pane (top menu), you can view the list of storage disks connected to the host system.
Click on New datastore and a New datastore creation wizard will start/pop up.
Click on Create new VMFS datastore and click on NEXT. This is the option selected by default.
Give a name to your datastore and click on NEXT. You can use any name. For instance, we will be using ESXi Storage. Also, verify the devices which are unclaimed by ESXi as those drives can be only used for the datastore.
Select the partition layout and click on NEXT. If you don't want to use separate partitions, it is recommended to use Use full disk option and use VMFS 6 File System for the maximum reliability. You can also use a custom partition layout. Simply select Custom and select Before, select a partition (Free space) at the left most of the bar. Now, you can manually set the size of the partition.
Review the Summary and click on FINISH. When prompted, select YES for the erasure of the disk and to create a datastore.
CHAPTER 2: Creating macOS Bootable Disk
If you have a Mac or a computer running macOS, this process can be a lot easier and in one go.
Downloading macOS
If you determine that your hardware is compatible according to the above-provided compatibility lists, you can start your journey by creating a Bootable USB for your target computer.I. Requirements
- Access to a computer with Windows installed (Online Method). This can be done on the target system on which you plan to install macOS.
- Internet connection to download the required files.
1. Install the latest Python from the Microsoft Store.
2. Download OpenCore Pkg.
3. Extract the OpenCorePkg to your Desktop.
4. Move into the OpenCore-0.X.X-RELEASE/Utilities directory.
5. Right-click on the macrecovery folder and select Copy as path.
6. Open Command Prompt with Administrator Privileges
7. Type cd and then paste the path you copied earlier in step 5 and then press the enter key. The command would be the following
cd "C:\Users\Your User Name\Desktop\OpenCore-0.X.X-RELEASE\Utiities\macrecovery"
8. Depending on the macOS version you need (See Recovery Table below), execute the commands. When prompted, enter your password.
Recovery Table
OS Version | Command |
---|---|
OS X Lion | ./macrecovery.py -b Mac-C3EC7CD22292981F -m 00000000000F0HM00 download |
OS X Mountain Lion | ./macrecovery.py -b Mac-7DF2A3B5E5D671ED -m 00000000000F65100 download |
OS X Mavericks | ./macrecovery.py -b Mac-F60DEB81FF30ACF6 -m 00000000000FNN100 download |
OS X Yosemite | ./macrecovery.py -b Mac-E43C1C25D4880AD6 -m 00000000000GDVW00 download |
OS X El Capitan | ./macrecovery.py -b Mac-FFE5EF870D7BA81A -m 00000000000GQRX00 download |
macOS Sierra | ./macrecovery.py -b Mac-77F17D7DA9285301 -m 00000000000J0DX00 download |
macOS High Sierra | ./macrecovery.py -b Mac-7BA5B2D9E42DDD94 -m 00000000000J80300 download |
macOS Mojave | ./macrecovery.py -b Mac-7BA5B2DFE22DDD8C -m 00000000000KXPG00 download |
macOS Catalina | ./macrecovery.py -b Mac-CFF7D910A743CAAF -m 00000000000PHCD00 download |
macOS Big Sur | ./macrecovery.py -b Mac-E43C1C25D4880AD6 -m 00000000000000000 download |
Latest Version | ./macrecovery.py -b Mac-E43C1C25D4880AD6 -m 00000000000000000 -os latest download |
The script will start downloading the required recovery files:
9. Once the download is completed, you'll see something like below:
This will create a com.apple.recovery.boot directory inside OpenCore-0.X.X-RELEASE/Utilities/macrecovery directory.
You can find BaseSystem.dmg and BaseSystem.chunklist in OpenCore-0.X.X-RELEASE/Utilities/macrecovery/com.apple.recovery.boot directory.
Converting DMG/ Create Bootable Disk
As BaseSystem.dmg cannot be read directly by VMware ESXi, you need to convert the image from DMG to a suitable format/recognizable format such as .vmdk (VMware Workstation). Using QEMU, you can easily convert the BaseSystem.dmg to a readable format. QEMU supports multiple formats including KVM, RAW, VDI, VHD, and VMDK.This step will eliminate the requirement of an additional virtual USB (Hyper-V) and a physical USB (VMware Workstation) along with Transmac and other complicated and lengthy steps. In addition, this will also make the booting faster, reducing the boot times due to the latency. However, if you want to go with that route you can skip this step if you're interested in knowing other ways.
1. Download and install QEMU. You can just select the Tools and DLL Library when you run the installer and that would be enough for converting the DMG.
2. Navigate to OpenCore-0.X.X-RELEASE/Utilities/macrecovery/com.apple.recovery.boot directory.
3. Within the directory, right-click and select Open in CommandPrompt from the context menu.
4. Now execute the following command in the Command Prompt:
Code:
c:\"Program Files"\qemu\qemu-img convert -O vmdk -o compat6 BaseSystem.dmg Recovery.vmdk
Now, the qemu-img will convert the BaseSystem.dmg to Recovery.vmdk which can be used as an existing disk in VMware Workstation.
Once the conversion is completed, you'll find a Recovery.vmdk file in the same directory.
Converting Recovery Image for ESXi
Although using QEMU we managed to convert the BaseSystem.dmg to Recovery.vmdk, this will not work under ESXi but only on VMware Workstation. When you try to use the Recovery.vmdk as an existing disk and power on the Virtual Machine, you'll get Failed to power on virtual machine Test. Unsupported or invalid disk type 2 for 'sata0:2'. Ensure that the disk has been imported error. To make the Recovery.vmdk compatible for ESXi, follow the steps below
Upload Recovery Image
1. From the ESXi Host Client, select
datastore1
under Storage from the left pane.2. Click on the
Datastore browser
.3. Click on
Upload
and then browse the Recovery.vmdk
.4. Once the upload is finished, you should see the
Recovery.vmdk
file in the datastore you uploaded.CAUTION:
If you tried to power on a VM with the affected VMDK, you should detach it before you proceed.
As a best practice, you should also make sure you have backups and your network is secure before you proceed to enable SSH on your ESXi host.
Enable SSH
1. From the ESXi Host Client, navigate to Host2. Click on Actions and then select
Enable Secure Shell (SSH)
from Services in the drop-down menu.SSH into ESXi Host
1. On another system, open Command Prompt/Terminal and login into your VMware ESXi Server by executing the following commands:
ssh root@XXX.XXX.XX.XX
Where, XXX.XXX.XX.XX represents the IP address of your VMware ESXi Server.
2. When prompted, enter the administrator password you chose during the ESXi installation. The password should be the same that you use for logging into the web-based control panel.
Generally, you do not need to log in as the root user to run the vmkfstools commands. However, some commands, such as the file system commands, might require the root user login. If you encounter errors, log in as root.
Converting the Recovery Image for ESXi
In order to convert the Recovery Image for ESXi, we have to use vmkfstools. It's a bundled tool that comes with ESXi which can be used to check the integrity of Virtual Disks and to repair them.
3. Once you're logged in, convert the Recovery.vmdk using the syntax:
vmkfstools -i /vmfs/volumes/YourDataStoreHere/Recovery.vmdk /vmfs/volumes/YourDataStoreHere/Recovery-converted.vmdk
In our case, as our datastore is datastore1 (default), the command would be:
vmkfstools -i /vmfs/volumes/YourDataStoreHere/vm.vmdk /vmfs/volumes/YourDataStoreHere/vm-converted.vmdk
You'll see something similar as an output of the result:
Code:
[root@localhost:~] vmkfstools -i /vmfs/volumes/datastore1/Recovery.vmdk /vmfs/volumes/datastore1/Recovery-converted.vmdk
Destination disk format: VMFS zeroedthick
Cloning disk '/vmfs/volumes/datastore1/Recovery.vmdk'...
Clone: 100% done.
Now, we can use the newly converted Recovery-converted.vmdk in ESXi without any errors.
Do not copy/paste the command.
CHAPTER : Enable Virtualization
The very first step is to set up BIOS to have the Virtualization enabled on your system. This is because there are a few systems that have the option to Enable/Disable the Virtualization in BIOS which affects the functionality when running a Virtual Machine. To enable Virtualization, follow the steps below.1. On your target computer, boot to BIOS. Refer to your user manual for the BIOS Key
2. Enable Virtualization. This is usually present as Intel VT-x or Intel Virtualization Technology and AMD-V option in BIOS.
3. Save & Exit Setup.
STEP 2: Verify the Virtualization
The next step is to verify whether the virtualization is enabled or not. This step is required in order to ensure you're on the right track and you meet the hardware requirements to run a Virtual Machine. To verify the WiFi/BT detection, follow the steps below.1. Open Task Manager using CTRL+ALT+DEL Key together on your Keyboard
2. Check the Virtualization status under the Performance>CPU section.
If you notice that the Virtualization is Disabled, you need to configure the BIOS/UEFI and enable Virtualization. Enabling the Virtualization Technology feature differs from vendor to vendor and the options differ between Intel and AMD. See STEP #1 for more information.
Installing VMware ESXi
CHAPTER X: Unlocking VMware ESXi
If you have noticed, while creating a Virtual Machine, there is no option related to macOS. This is because, by default, VMware does not support installing macOS as a guest Operating System unless you're on a Mac. Windows users are required to run a patch tool which unlocks and provides functionalities to support macOS. The tool is available for free from GitHub.The patch tool carries out the following modifications dependent on the product being patched:
- Fix vmware-vmx and derivatives to allow macOS to boot
- Fix libvmkctl to allow vSphere to control the guest
Download Unlocker
1. Download the latest unlocker from the Github Release page.Upload Unlocker
1. From the ESXi Host Client, selectdatastore1
under Storage from the left pane.2. Click on the
Datastore browser
.3. Click on
Upload
and then browse the esxi-unlocker-master.zip
.4. Once the upload is finished, you should see the
esxi-unlocker-master.zip
file in the datastore you uploaded.Enable SSH
1. From the ESXi Host Client, navigate to Host2. Click on Actions and then select
Enable Secure Shell (SSH)
from Services in the drop-down menuPatch VMware ESXi
1. On another system, open Command Prompt/Terminal and login into your VMware ESXi Server by executing the following commands:ssh root@XXX.XXX.XX.XX
Where, XXX.XXX.XX.XX represents the IP address of your VMware ESXi Server.
If this is the first time you're SSH into your server, it will prompt you to accept the fingerprint. Type yes and press enter to continue.
2. When prompted, enter the administrator password you chose during the ESXi installation.
3. Once you're logged in, execute the following commands:
Code:
#Move to the directory
cd vmfs/volumes/datastore1
#Unzip Unlocker
unzip esxi-unlocker-master.zip
#Modify permissions
chmod 775 -R esxi-unlocker-301
#Move to the extracted unlocker directory
cd esxi-unlocker-301
#Install Unlocker
./esxi-install.sh
4. Once you see a success message, restart the ESXi server by typing
reboot
in the same SSH window or close the SSH connection using exit command and restart the server using the Host>Reboot option.During the reboot, you'll see that the rc script is executing the unlocker.py
Validate Patch
Once you have installed the Unlocker, you'll also need to validate the patch whether it is running or not.1. Enable SSH using Host>Actions>Services>Enabe Secure Shell (SSH).
2. Login into your ESXi server using SSH.
3. Execute the following commands:
Code:
#Move to Unlocker directory
cd vmfs/volumes/datastore1/esxi-unlocker-301
#Test SMC
./esxi-smctest.sh
This should now output
smcPresent = true
as a result. This indicates the Unlocker has been installed successfully and the VMware ESXi has been successfully patched for running macOS!4. Close the SSH connection using exit command.
NOTE: Every time you apply an update to the VMware ESXi, you'll need to run the Unlocker to repatch the VMware ESXi for macOS support.
CHAPTER X: Creating Virtual Machine
Click on
Create / Register VM
.A Window will pop up. From there, select
Create a new virtual machine
and click on NEXT
.Name your Virtual Machine. In our case, we'll be using macOS Sonoma as we're installing macOS Sonoma. You can use any name.
Because the ESXi Unlocker project currently does not fully support ESXi 8.x, select
ESXi 7.0 U2 virtual machine
from Compatibility.Select
Mac OS
from the Guest OS family list and then select Apple macOS 12 (64-bit)
from the drop-down list and click on NEXT. It is completely okay to use macOS 12 to install macOS 13.x and newer.Click on NEXT and continue with the default datastore1 from Storage. If you have used a dedicated disk or remote datastore, select the particular datastore and continue with that.
Set the Number of cores per processor to no more than half of the Threads available on the host computer. The virtual core allocation should be always under 50% of the actual physical CPU Cores. Allocating more than 50% of the physical core may slow down the host computer (e.g. i5-10400 is a 6 Core CPU which has 12 Threads so allocating 6 Virtual Cores is under the 50% utilization limit).
Set the Memory as 4096MB or 8GB and click on Next. If you have enough memory on the host system, 8192MB would be preferred. The least would be 4096MB or 4GB.
Expand the Memory option and enable
Reserve all guest memory (All locked)
checkbox. This is required to facilitate direct access to the Graphics Card (covered later in this part of the guide)Expand Network Adapter 1 and select VMXNET3 from the Adapter Type
You can remove SCSI Controller 0 if you want to.
Review the Summary and click on FINISH. If you notice that the parameters are not set as recommended, you can still edit the options by clicking on the
BACK
button. Review the Summary and click on Finish.Set the Disk size to 30.0GB for the macOS Installation and then select Thick provisioned, eagerly zeroed in the Disk Provisioning. This will allocate all the disk space when you create the VM. This will be our virtual disk on which we'll be installing macOS. Please note that selecting Thick provisioned, eagerly zeroed can enhance performance but requires all of the physical disk space to be available right now.
By default, the disk provisioning is set to Thick provisioned, lazily zeroed. Although Thick provisioned eagerly zeroed can take a much longer time to create the virtual disk as compared to lazily zeroed, it can enhance the performance of the virtual disk as it zeros out all blocks immediately during provisioning. This process can be a lot slower and time-consuming if you're low on the hardware resources. If you do not want to allocate all the space now, select
Thin Provisioned
, and the virtual disk starts small and grows as you add data to it. Choose as you would like. We highly suggest using Thick Provisioned, eagerly zeroed if you do not plan to use a dedicated separate disk for installing macOS.CHAPTER 7: Configuring Virtual Machine Parameters
Ensure the VM we created is not running.
Before you power on your VM, you'll need to configure some of the parameters in the Virtual Machine Configuration File to avoid issues and failures during the installation of macOS on VMware ESXi.
1. Enable SSH using Host>Actions>Services>Enabe Secure Shell (SSH).
2. Login into your ESXi server using SSH from any other computer.
3. Execute the following commands:
Enable SSH
1. From the ESXi Host Client, navigate to Host2. Click on Actions and then select
Enable Secure Shell (SSH)
from Services in the drop-down menu.SSH into ESXi Host
1. On another system, open Command Prompt/Terminal and login into your VMware ESXi Server by executing the following commands:
ssh root@XXX.XXX.XX.XX
Where, XXX.XXX.XX.XX represents the IP address of your VMware ESXi Server.
2. When prompted, enter the administrator password you chose during the ESXi installation. The password should be the same that you use for logging into the web-based control panel.
Add SMC
1. Close VMware Workstation/Player
2. Navigate to C:\Users\%USERPROFILE%\Documents\Virtual Machines\macOS Sonoma
3. Create a backup of your virtual machine .vmx file.
4. Right-click on the Virtual Machine Configuration File ending with .vmx extension and open it using Notepad
5. Add smc.version = "0" at the end of the file.
6. Save the configuration.
Enable support for AMD CPUs
Unlike bare metal, the AMD CPU isn't supported for booting macOS on VMware Workstation. To fix that, you'll need to add some parameters in the .VMX file for your preferred Virtual Machine. Unless you do that on AMD based systems for booting macOS on VMware ESXi, you'll get "The CPU has been disabled by the guest operating system. Power off or reset the virtual machine" error as soon as you start the Virtual Machine.1. Close VMware Workstation/Player
2. Navigate to C:\Users\%USERPROFILE%\Documents\Virtual Machines\macOS Sonoma.
3. Create a backup of your virtual machine .vmx file.
4. Right-click on the Virtual Machine Configuration File ending with .vmx extension and open it using Notepad
5. Copy the code below and paste it into the Virtual Machine Configuration file at the end of the line.
Code:
cpuid.0.eax = "0000:0000:0000:0000:0000:0000:0000:1011"
cpuid.0.ebx = "0111:0101:0110:1110:0110:0101:0100:0111"
cpuid.0.ecx = "0110:1100:0110:0101:0111:0100:0110:1110"
cpuid.0.edx = "0100:1001:0110:0101:0110:1110:0110:1001"
cpuid.1.eax = "0000:0000:0000:0001:0000:0110:0111:0001"
cpuid.1.ebx = "0000:0010:0000:0001:0000:1000:0000:0000"
cpuid.1.ecx = "1000:0010:1001:1000:0010:0010:0000:0011"
cpuid.1.edx = "0000:0111:1000:1011:1111:1011:1111:1111"
6. Save the configuration.
If you don't patch, when you start the VM, it will be simply stuck at the Apple logo with no progress bar. This is because AMD CPUs are officially not supported by Apple yet. Therefore, you'll have to spoof the CPU in order to boot the macOS.
CHAPTER X: Installing macOS
Once everything is set, you're ready to clean install the desired macOS version using VMware ESXi. Please note that the host computer must be connected to the internet in order to install macOS since the BaseSystem is merely a recovery image and a full macOS installer will be downloaded during the installation. The Operating System is approximately 12GB in size. So if you're using any sort of Mobile Data make sure you have enough/sufficient plan if using a Mobile Data plan.Installing macOS on a shared Drive
1. Select the Virtual Machine from the left pane and click on Power on to power on the VM.
2. The installer will load in a while and you'll see the progress with the Apple logo with a progress bar.
3. When at the Recovery screen, select your preferred language and continue
4. Select
Disk Utility
and click on Continue
.5. When in Disk Utility, click on
View
, and select Show all Devices
.6. Select
VMware Virtual SATA Hard Drive Media
and use the following parameters to erase the drive:Name: Macintosh HD
Format: APFS
Scheme: GUID Partition Map
Installing macOS on a dedicated separate drive requires SATA/NVMe passthrough. If you plan to go with that route, you'll have to configure the SATA/NVMe passthrough first. Please note that the NVMe limitations may apply as per the motherboard specification due to the number of PCIe lanes. In addition, multiple NVMe(s) can be added, however, for a SATA passthrough, you'll need a separate SATA Controller other than the Motherboard's built-in one. If you're using a Motherboard which has more than one SATA Controller, you can use SATA passthrough.
1. From the ESXi Host Client, select
2. Select the
3. Select the target NVMe and click on
4. Select the target Virtual Machine in the left pane and click on
5. Remove the
6. Click on
7. From the New PCI device section, select the target NVMe from the drop-down list and click on
8. Continue with the step #1 as mentioned above. For step #6, just select the target NVMe Disk.
1. From the ESXi Host Client, select
Manage
.2. Select the
Hardware
Tab and then select PCI Devices
.3. Select the target NVMe and click on
Toggle passthrough
to enable the passthrough4. Select the target Virtual Machine in the left pane and click on
Edit
.5. Remove the
Hard disk 1.
6. Click on
Add other device
and then select PCI device
from the drop-down menu.7. From the New PCI device section, select the target NVMe from the drop-down list and click on
SAVE
.8. Continue with the step #1 as mentioned above. For step #6, just select the target NVMe Disk.
NOTES:
The target disk/partition must be GUID
APFS format is recommended for High Sierra and Later
Users who plan to use High Sierra on HDD should use macOS Journaled (HFS+) Format instead of APFS Format. Users who are attempting to install macOS Sierra and prior, should use HFS+. Either way, APFS will not be available for macOS High Sierra and newer.
6. Close Disk Utility
7. Select Reinstall macOS Sonoma and continue with the options.
8. Now select Macintosh HD and click on Continue.
NOTES:
Step #6 will format the target disk. Proceed with caution.
This will take a couple of minutes and will restart at "Less than a minute is remaining". Upon completion, the system will automatically restart. Your Mac will restart to complete the installation.
Here it ends the first phase of the installation.
When the installer reboots, the installer screen will appear and continue the second phase of the installation. During this phase, the installer will install files to your target disk and create a Recovery HD partition. Upon completion, your Mac will automatically restart.
STEP 3: Finishing macOS Setup
After several minutes of waiting and keeping yourself patient, you should see the macOS setup screenAfter finishing the macOS installation, it's time to set up the macOS for the first usage with the newly installed macOS.
When you're at the welcome screen, continue with the basics options such as Keyboard setup, Network, Computer Account, and Privacy settings. Do not sign in to Apple ID when prompted.
Now the installation is complete! You should be logged in to your Desktop with the beautiful Wallpaper
Take Snapshot
Once you complete the macOS setup, it would be good to take a snapshot. If anything breaks during configuring the macOS or while testing out a few things or if the Virtual Machine goes corrupt, you can always head back to the snapshot to restore your previous installation using the Snapshot feature.
1. Select Take Snapshot... from VM>Snapshot menu.
2. Give a desired name to your Snapshot and click on Take Snapshot. You can also add the description to remember the state of the Virtual Machine.
When needed, you can restore the Virtual Machine to a previous working state from VM>Snapshot>Revert to Snapshot option. You can view all the Snapshots and their details using Snapshot Manager or using the shortcut CTRL+M.
CHAPTER 7: Post-installation
Although a bare metal involves a lot more post-install steps such as fixing Graphics, Network, Thunderbolt, etc this is not the same for VMware Workstation/Player due to the hardware not being utilized properly/ Moreover, as VMware is capable of booting macOS without requiring any bootloader (such as OpenCore), the post-installation involves only a few steps. However, you may further accelerate and improve the macOS performance using VMware Tools after installing it on the guest OS. This will give you the ability to use macOS in full screen.As this is VMware ESXi, it supports a full virtualization as its based on hypervisor type 2. So, unlike the VMware Workstation, post installation is bit extended for ESXi. Let's start by installing VMware Tools first.
By default, VMware ESXi tends to expect the VMware Tools (darwin.iso) at /usr/lib/vmware/isoimages/darwin.iso. Once you have have the darwin.iso at this location, VMware ESXi will automatically detect and it will prompt you to install the VMware Tools once you click on Actions>Guest OS>Install VMware Tools.
The other way is the manual method. You can simply download darwin.iso on the macOS VM and install it over there. However, this method isn't feasible as VMware ESXi dashboard will always keep you notifying that VMware Tools is not installed in this virtual machine.
Once you have installed VMware Tools inside the guest OS, the message/notification should disappear after restarting the host.
The purpose of installing VMware Tools is that, during the post install process, it will help you to execute the tasks easily, without major lags and performance issues. Althouh, if you followed the EFI creation guide for VM, the guest OS should be already fast enough and after installing the VMware Tools, it will be more/quite smooth. In addition, if you want to remote in using Team Viewer or AnyDesk, the WindowServer will be crashed immediately due to lack of Graphics.
Install VMware Tools
By default, when you boot into macOS, the video memory is only 3MB. Although, GPU passthrough is covered in the later stage of this guide, it is better to install VMware Tools than not installing it at all.VMware Tools is a set of services and modules that enables several features in VMware for better management of and seamless user interactions with the guest operating systems. VMware Tools tends to improve the operation of virtual machines and the performance of the guest Operating System. The guest Operating System can work without VMware Tools, but you would be missing out on useful features and conveniences such as using the Virtual Machine in full screen. The VMware Tools allows you to configure a number of settings that will make your guest Operating System more suitable for usage in a virtualized environment.
The kexts serves the following purposes
Enhances the virtual disk's performance and allows you to activate extra capabilities on the macOS Virtual Machine such as File Sharing and Drag and Drop.
Once you have booted the macOS to the Desktop
1. Select Install VMware Tools from the VM Menu
2. You'll find the VMware Tools mounted on the Desktop
3. Double-click on Install VMware Tools and install the package file. When prompted, enter your password.
4. Click on OK
Click on Open System Preferences and enter your password to unlock the settings page.
Click on Allow. When prompted, click on Restart.
Enable drag-and-drop File Sharing
With the help of VMware Tools, you can have the advantage of Drag and Drop file sharing between the host and the guest Operating System. However, it's not enabled by default and you'll need to enable it in order to enable the drag and drop file sharing. Follow the steps below to enable drag and drop file sharing. To enable drag and drop file sharing, follow the steps below.
1. Open System Preferences
2. Click on Security & Privacy and then select Accessibility in the Privacy Tab.
3. Click on the lock button at the bottom to unlock and it will prompt you to enter your password. When prompted, enter your password.
4. Select the vmware-tools-daemon checkbox to enable vmware-tools-daemon.
Ventura and above
If you're using Ventura and later, you'll require two more steps along with the above steps followed by the above steps
1. Allow vmware-tools-daemon in Full Disk Access
2. Enable File Sharing from System Preferences>General
Now, you can share the files between the host and the guest Operating System using the drag and drop feature.
Remove Recovery Disk
Although this step is optional and can be often helpful in reinstalling the macOS if something goes wrong, it is not advised to remove the recovery disk. Although, a few interested user might consider this option.
Select the Virtual Machine from the left pane.
Click on Edit virtual machine settings
Select Hard Disk (SATA) with 3GB in size and click on Remove.
Click on OK and you're done.
Take Snapshot
Once you complete the macOS setup, it would be good to take a snapshot. If anything breaks during configuring the macOS or while testing out a few things or if the Virtual Machine goes corrupt, you can always head back to the snapshot to restore your previous installation using the Snapshot feature.
1. Select Take Snapshot... from VM>Snapshot menu.
2. Give a desired name to your Snapshot and click on Take Snapshot. You can also add the description to remember the state of the Virtual Machine.
When needed, you can restore the Virtual Machine to a previous working state from VM>Snapshot>Revert to Snapshot option. You can view all the Snapshots and their details using Snapshot Manager or using the shortcut CTRL+M.
CHAPTER X: Switching to OpenCore
Although VMware ESXi does not require any bootloader to run macOS, installing OpenCore can be really helpful in certain cases if you plan to use certain hardware and configurations which is not supported OOTB/natively under macOS. For example Intel WiFi or AQC
Creating OpenCore EFI
Installing OpenCore
Testing OpenCore
Changing Boot order
Select the target VM and click on Edit.
Click on VM Options and expand Boot Options.
Select the Force BIOS setup checkbox
Click on SAVE
Once in Boot Manager
Select
Enter setup
and press enter keyFrom the Boot Maintenance Manager, select
Configure boot options
and press enter keyFrom boot options, select
Change boot order
and press enter keyFrom Change boot order page, press the enter key and change the boot order for OpenCore using
+
(Up) and -
(Down) keys and ensure the OpenCore is at the top of the boot order list. Once confirmed, press the enter keySelect
Commit changes and exit
.Select
Exit the Boot Maintenance Manager
.Select Boot normally and the VM will automatically boot via OpenCore now onwards. You can verify it using the OpenCore GUI.
Please note that the Console will disappear if you set svga.present to FALSE
Boot Manager>Enter setup
Boot Maintenance Manager>Boot from a file
Select EFI,
[PciRoot
or
Configure boot options>Add boot option
Select EFI,
[PciRoot
Browse OC>Boot>Bootx64.efi
Input the description (OpenCore)
Commit changes and exit
Configure Boot options>Change boot order
Change boot order>commit changes and exit
Back>Boot normally
Power Management
Unlike the bare metal, the power management matters. After all, it helps to achieve performance when at peak load and consume less resources when idle to save power.
How important the power management is on bare metal, it has the same importance on ESXi on a Virtual Machine. Luckily, with macOS Monterey and above, the Power Management is native and the Sleep/Wake, Restart and Shut Down functions can be performed normally. perform normally
However, if you're on Big Sur or prior, you'll need to inject the SSDT in order to enable the Power Management.
Just keep in mind that if you're on Big Sur or prior, you'll need to inject the SSDT in order to enable the Power Management. See Switching to OpenCore for more information.
Sleep/Wake
The sleep/wake function slightly differs on VM as compared to Bare Metal. When you run the guest OS on a Virtual Machine the host system has to be turned on all the time. However, it is quite surprising that the ESXi actually supports Sleep/Wake and works as expected. When in Sleep mode, you can wake up the macOS using the Mouse and/or Keyboard.When in sleep mode, the hard disk will read, write, and store the data. At this time, when using the ESXi Host Client (UI), you can see that the CPU is still working at a very low frequency (13MHz) which indicates the guest OS has a working sleep function. However, the monitor and peripherals are turned off during the sleep mode. It is indeed the same as real sleep on bare metal just the host machine has to be turned on all the time is the only difference.
Restart
The restart function works normally as of bare metal. You can restart using Apple Logo>Restart or using theReset
button from ESXi Host Client (UI). However, it is always recommended to restart from the macOS to avoid data loss.Shut Down
Like the restart function, the Shut Down also works normally as of bare metal. You can either shut down using Apple Logo>Shut down or via thePower off
button from the ESXi Host Client (UI). However, it is always recommended to perform Shut Down within macOS to avoid data loss.CHAPTER X: PCI Passthrough
As most of the users are interested in the GPU passthrough and due to the highest priority in the passthrough list, let's start with the GPU passthrough
Although, PCI passthrough is a part of post installation step, it is covered as a separate section due to the complexity involved
I. GPU Passthrough
PCI passthrough for GPU cards in VMware ESXi allows a virtual machine to access a physical GPU card directly, bypassing the hypervisor layer. This enables a virtual machine to fully utilize the capabilities of a GPU, making it suitable for compute-intensive tasks like machine learning, high-performance computing, and computer vision. This section will walk users through setting up PCI passthrough for GPU cards in VMware ESXi.VMDirectPath I/O - also called PCI Passthrough, allows the GPU device to be accessed directly by the guest operating system on a virtual machine. This method is the simplest way to consume a GPU and only allows the GPU card to be dedicated to one virtual machine, although a single virtual machine can make use of multiple GPUs in passthrough mode.
For a GPU passthrough, the main requirement is having a macOS Compatible GPU. If you're using the latest macOS (Monterey and newer), you'll need a 400 or 500 series GPU at least. You can definitely use a legacy GPU but you'll have to patch them using OCLP in order to drive them under macOS. If you want a great experience, you'll have to use an AMD driver-free (native) Graphics Card. A lot of options are available from the 500 series (such as RX 460/470/480 or 560/570/580/590). As always, the GPU choice depends on the workload you have.
For newer AMD 5000 and 6000 series GPUs, you'll need to use OpenCore. This will allow you to set agdpmod=pikera required by such GPUs to prevent the black screen when macOS finishes loading.
Also, if you have NVIDIA GPU and using macOS High Sierra or prior, you'll need to install the NVIDIA WebDrivers in order to enable the acceleration.
Please note that when you disable the console, you also loose input to the monitor connected to the ESXi host.
NVIDIA
Native NVIDIA GPUs which do not require a WebDriver, Kepler based Cards (such as GT710) not only work OOTB but has Graphics Acceleration with Full QE/CI. Surprisingly, it does not require any VBIOS injection unlike AMD without the involvement of OpenCore.
However, if you do not use OpenCore, there will be no display on the monitor sometimes. Even if you try to inject the VBIOS, the VM will not display any output. In order to fix that issue, you'll need to use OpenCore to load WhateverGreen which fixes numerous graphics related issues under macOS. We highly recommend using OpenCore as it fixes several bugs out there and is much stable in terms of Graphics passthrough than the native VMware ESXi.
Please note that to configure boot orders and such, you'll have to enable console in order to get the display.
The GT710 works with and without OpenCore with proper Graphics acceleration and full QE/CI. In addition, the display on the monitor can be driven as well in both scenarios/cases.
The display is quite crisp as of bare metal and the performance is so high that it doesn't feel you're on VNC/Remote but on a bare metal machine. It's just so fluid and the experience is amazing. The performance is simply unmatched.
Although it's nice to have a GPU which does not require a VBIOS injection, it's not the case with every NVIDIA GPU out there. Cards such as GTX 1070Ti do require VBIOS injection.
AMD
Intel
For Intel, only IGPUs are supported at the moment. No ARC GPUs of course as none of them are supported
Native GPU Passthrough
Unsupported GPU Passthrough
NVIDIA
AMD
Here we have used WX4100 as an example which is an unsupported GPU under macOS and requires a Fake Device ID (spoof) to work/to achieve the Graphics acceleration
You must spoof
APU Passthrough
Enable GPU Passthrough
From the ESXi Host Client, selectManage
.Select the
Hardware
Tab and then select PCI Devices
.Select the GPU and click on
Toggle passthrough
to enable the passthroughSelect the target Virtual Machine in the left pane and click on
Edit
.Click on
Add other device
and then select PCI device
from the drop-down menu.From the New PCI device section, select the target GPU from the drop-down list and click on
SAVE
.When you first try to boot the target macOS VM using ESXi, the passthrough will not work by default (applicable to NVIDIA and AMD). The connected monitor to the GPU will be completely black and unresponsive but if you check the System Report>Graphics & Displays, you'll find that the macOS recognizes the GPU but cannot be driven. This is because the ESXi doesn't provide the required VBIOS to the macOS VM and therefore no way for macOS to read the information about the connected GPUs. Hence, you'll need to load the VBIOS for your particular GPU in order to enable the acceleration (QE/CI).
If you do not see the GPU in the PCI Device list, make sure you have enabled
Virtualization
and VT-d
in BIOS/UEFI.Obtain VBIOS
Before you can upload the GPU VBIOS, you'll need to obtain the VBIOS first. The VBIOS can be obtained using different ways described belowUsing GPU-Z
1. Download GPU-Z2. Open GPU-Z
3. Click on the Save BIOS icon and select
Save to file
.4. Name the File and select the File type as
BIOS Files (*.rom)
and click on Save
.5. Close GPU-Z.
6. Copy the .rom file to any USB Flash Drive for uploading it to VMware ESXi Server.
Using Vendor Website
Rename the XXXXX.YY to
Make sure to rename the VBIOS extension to .rom or the ESXi won't load it.
Upload VBIOS
1. From the ESXi Host Client, select datastore1 under Storage from the left pane2. Click on the Datastore browser
3. Click on Upload and then browse the target VBIOS (in our case RX580.rom)
Once the upload is finished, you should see the particular VBIOS file in the datastore you uploaded.
Load VBIOS
To load the VBIOS, you can use the undocumented parameters.1. From the ESXi Host Client, select the target Virtual Machine in the left pane and click on Edit.
2. Click on the VM Options Tab and expand the Advanced option.
3. Click on Edit Configuration and you'll see a Configuration Parameters window
4. Click on Add parameter and add the following parameters:
Code:
pciPassthruX.filename = Path/to/your/VBIOS
pciPassthruX.opromEnabled = TRUE
Where
X
represents the PCIe position index of the GPU for the passthrough device. The index starts from 0
. So, if you have a single GPU, the value would be 0. However, in the case of multiple GPUs, ensure to use the correct index value or the VBIOS won't load. See Calculating PCI Position Index Value for more information.From the ESXi Host Client, select
Select the
Find the target GPU Device and note down the last digit. The last digit you see is the PCI position index value.
Please note that the PCI Position index differs from slot to slot and device to device. Even if you use the same slot but install a different device to it, the PCI position index will change.
Manage
.Select the
Hardware
Tab and then select PCI Devices
.Find the target GPU Device and note down the last digit. The last digit you see is the PCI position index value.
Please note that the PCI Position index differs from slot to slot and device to device. Even if you use the same slot but install a different device to it, the PCI position index will change.
Disable VGA Driver
If the VGA driver is claimed by the VMware ESXi, you'll not get any display on the monitor connected to the target GPU for display. You'll need to use a VNC to login and operate the Mac. In order to get the display on your monitor, you'll have to turn off the built-in virtual display.Assuming the Parameters window is still open,
Set
svga.present
to FALSE
.Click on OK
Connect the monitor using DP or HDMI
Power on the VM
Once the VBIOS is loaded successfully, the DCUI will disappear and you should see the Apple logo with a progress bar or the verbose on your monitor.
GPU Spoof
As VMware ESXi does not support spoofing Device ID, you'll have to use OpenCore for Device ID spoof. You can either use DeviceProperties or SSDT to spoof the Device ID for your GPU. Please note that you'll still need to load the VBIOS if you're using an AMD GPU. See GPU Spoof for more information.Legacy GPU Passthrough
Although it is highly recommended to use a native macOS compatible GPU for passthrough, there can be cases where you would want to use a legacy GPU for passthrough. Once you're booted to macOS, you can use OCLP to patch the system volume to enable the Legacy GPU passthrough on the latest macOS version.Example:
Unsupported GPU Passthrough
Although the GPU passthrough does not require OpenCore when you have a macOS compatible GPU with native support under macOS, you may need to use OpenCore if you plan to use an unsupported GPU such as APU,Although you can passthrough the PCI Devices, the compatibility and the limitations still apply to macOS.
IGPU Passthrough
You can use IGPU passthrough under macOS. However, you'll not be able to use a monitor and can only use Console/VNC to get the display.APU Passthrough
APU passthrough is slightly different from IGPU and dGPU passthrough.
USB Passthrough
On some of the Ryzen based systems, its a bug that when you select the PCI Devices for passthrough, it starts to jump as soon as you select the PCI Devices. To fix, use the filter search box and type the PCI Device name and then select it respectively. This is typically because of the PCI Devices connected to the same bridge/device node.
II. Storage Passthrough
Unfortunately, unlike the VMware Workstation, there is no option to choose the Virtual Disk type (such as IDE/SATA or NVMe) in ESXi at the time of creating a Virtual Machine. The Virtual Disk created on the ESXi host is recognized as SATA type under macOS. When using Thick provisioning, delayed zeroed, the speed test for an SK Hynix PC801 (OEM) which has similar specs as the consumer drive (P41 Platinum) offering 3500 MB/s Read and 3000 MB/s Write speeds respectively on a PCIe Gen3 (x4) onboard NVMe Slot. As per the datasheet, the drive offers up to 7000 MB/s Read and 4700 MB/s Write for a 512GB variant on a Gen4 (x4) NVMe slot.The speed of the Virtual Disk is close to the Gen3 pass-through and a bare metal install:
SATA Passthrough
As the SATA controller will be occupied by ESXi Server, you'll need a separate HBA/RAID Card for the passthrough.NVMe Passthrough
Although you cannot passthrough the host NVMe as that's what the host is using, you can definitely passthrough a separate drive intended to use under macOS.From the ESXi Host Client, select
Manage
.Select the
Hardware
Tab and then select PCI Devices
.Select the target NVMe and click on
Toggle passthrough
to enable the passthroughSelect the target Virtual Machine in the left pane and click on
Edit
.Click on
Add other device
and then select PCI device
from the drop-down menu.From the New PCI device section, select the target NVMe from the drop-down list and click on
SAVE
.Power On VM
Boot into macOS
You should see the NVMe under macOS now
Please keep in mind that do not change the NVMe positions, either for the VMware ESXi on which is installed or for the passthrough device. If you do so, the VM will become invalid and the ESXi Server will take a much longer time to boot.
In addition, when doing a storage passthrough, the compatibility for macOS remains the same (i.e. unsupported drives will result in KP)
U.2 Passthrough
The U.2 can be passthroughed like NVMe. If you're using a dedicated HBA/RAID Card, you'll need to install compatible drivers under macOS to enable the support.
III. USB Passthrough
IV. Network (NIC) Passthrough
The default network under ESXi is driver-free under macOS as it is being shared. Depending on the NIC speed, the macOS will also have the same speed as the native NIC speed i.e. 1GbE, 2.5GbE, 5GbE, or 10GbE.
As the Onboard NIC will be occupied by the ESXi Server/host, you cannot pass through directly it to macOS. You'll need a separate NIC Card for the passthrough. However, the NIC can be shared and can facilitate the internet function via DHCP configuration. If you have a separate NIC, you can simply install it and enable the NIC passthrough. In case the host has multiple NIC(s), you can enable the passthrough with one of those.
From the ESXi Host Client, select
Manage
.Select the
Hardware
Tab and then select PCI Devices
.Select the target NIC and click on
Toggle passthrough
to enable the passthroughSelect the target Virtual Machine in the left pane and click on
Edit
.Click on
Add other device
and then select PCI device
from the drop-down menu.From the New PCI device section, select the target NIC from the drop-down list and click on
SAVE
.Power On VM
Boot into macOS
You should see the NIC under macOS now
When doing a NIC passthrough, you'll need to install the required driver (.kext) under macOS if your NIC requires an additional driver for macOS, unless the NIC has native support (driver-free) under macOS (such as Intel I225-V). The driver can be obtained from the vendor's site or if the community has already a driver, you could use that. If it requires Device ID spoofing, you'll have to spoof it using either DeviceProperties or SSDT which can be loaded via OpenCore.
Due to the unavailability of VT-d under macOS as it is being used by the host system (VMware ESXi), you cannot drive cards which requires VT-d. This includes several cards from Aquantia (AQC107, AQC113), Mellanox Intel (I225-V, XL710), etc. For NICs like AQC107, luckily there is a Kernel Patch which can be injected via OpenCore and the NIC can be driven normally as you would on a bare metal machine.
However, if you have a high-speed NIC or onboard (such as 10GbE), you may wish to use it for fast file transfer sharing and for that you'll have to passthrough the specific NIC under macOS.
Although the network can be shared using the VMTools (driver name), you may wish to use the high-speed NIC (if you have one).
Mount the ESP
Open the config.plist using OCAT
Add the following patch under the Kernel>Patch section of your config.plist
See Network driving cards for more info.
The implementation is same as AMD Systems as it lacks VT-d which is now a must requirement in order to drive several hardware under newer macOS version (typically Monterey and later).
V. WiFi Passthrough
If you're using a WiFi/BT which has native support (driver-free) under macOS, the WiFi should work normally as it would on a bare metal install once you enable the WiFi passthrough. One of the reasons why it is recommended to use hardware that has native support under macOS. Following are the steps to enable WiFi passthrough under macOS:1. From the ESXi Host Client, select
Manage
.2. Select the
Hardware
Tab and then select PCI Devices
.3. Select the target NIC and click on
Toggle passthrough
to enable the passthrough4. Select the target Virtual Machine in the left pane and click on
Edit
.5. Click on
Add other device
and then select PCI device
from the drop-down menu.6. From the New PCI device section, select the target NIC from the drop-down list and click on
SAVE
.Power On VM
Boot into macOS
You should see the NIC under macOS now
The native functions such as App Store, AirDrop, Handoff, iServices are available and work as expected.
Results:
BCM94360NG
BCM94352Z
NOTES:
- If you're on macOS Sonoma, the Broadcom WiFi is broken due to the removal of necessary kexts and as a result, you'll require OCLP to patch the system volume. This applies to every Broadcom WiFi, with or without the native support under macOS. See Enabling Broadcom WiFi on macOS Sonoma for more information.
- If you're not using a WiFi/BT that has native support (driver-free) under macOS (such as BCM94360NG), the requirements are pretty much the same as the bare metal install. One of the examples is BCM94352Z, which requires
AirPortBrcmFixup.kext
to drive WiFi under macOS and you'll have to use OpenCore to load the kexts under macOS. - Intel-based WiFi Cards would require OpenCore+Intel WiFi kext and will function normally as it would on a bare metal install. The passthrough steps are similar to Broadcom.
IV. Thunderbolt Passthrough
Finally, it's the Thunderbolt time. Yes, don't be surprised so much. The VM also supports Thunderbolt Passthrough including onboard and AIC.
It should be noted that whatever devices requires VT-d, cannot work, at least under macOS due to the unavailability of VT-d. However, other Operating System can work normally.macOS Updates/Updating macOS
The macOS updates can be installed and processed normally, worry-free, like a real Mac using the Software Update mechanism from the System Preferences requiring zero additional steps. Yes, this is cool we know However, if you're having a passthrough setup which requires additional configuration that is dependent on OpenCore, you'll need to follow the steps same as bare metal. See updating macOS for more information.
Updating VMware EXSi
There is an issue with ESXi 8 which stops macOS from booting and is probably related to the news that VMware no longer support macOS as host and guest for ESXi8. The workaround is to keep existing VMs as 7U2 variants and create new ones as ESXi 7 U2 VMs. This can be done in the dialogs when creating a new VM. However, with that workaround, you only be able to install macOS but not be able to successfully passthrough and probably, the Virtual Machine will be crashed immediately, when powered on.Troubleshooting
A very fast, stable internet connection is required due to the offline installer. Being an online installer, the installer fetches the InstallAssistant.pkg for the desired macOS version. If there are frequent dropouts, the download will fail and the installation will be terminated with the reason
VMware Workstation Unrecoverable Error: (vcpu 0)
In some cases, it might be possible that when you start the Virtual Machine, VMware will throw an error "VMware Workstation Unrecoverable error: (vcpu 0)". This is due to the missing SMC code in the VMX file.1. Close VMware Workstation/Player
2. Navigate to C:\Users\%USERPROFILE%\Documents\Virtual Machines\macOS Sonoma
3. Create a backup of your virtual machine .vmx file.
4. Right-click on the Virtual Machine Configuration File ending with .vmx extension and open it using Notepad
5. Add smc.version = "0" at the end of the file.
6. Save the configuration.
The CPU has been disabled by the guest operating system
Ensure Virtualization is enabled in your BIOS/UEFI. See STEP #1 for more information.Feature 'cpuid.ds' was absent, but must be present
This is due to the corrupted .vmx file. Try to restore the backup of the .vmx file you created previously and edit the .vmx file carefully this time. Make sure the characters are as per the guide as it's case-sensitive.This virtual machine requires AVX2 but AVX is not present. This virtual machine cannot be powered on
This is due to the corrupted .vmx file. Try to restore the backup of the .vmx file you created previously and edit the .vmx file carefully this time. Make sure the characters are as per the guide as it's case-sensitive.Module 'featurecompat' power on failed
This is due to the corrupted .vmx file. Try to restore the backup of the .vmx file you created previously and edit the .vmx file carefully this time. Make sure the characters are as per the guide as it's case-sensitive.Stuck on Apple Logo
If you attempt to boot the virtual machine and it's stuck on the Apple Logo, follow the steps below:1. Power off the Virtual Machine
2. Ensure the .vmx is not corrupt and has the recommended changes
3. Power on the Virtual Machine again
Boot Loop with Apple Logo progress bar
Usually caused due to the VMware not patched.1. Apply if there's an update available for the VMware Workstation/Player
2. Patch VMware Workstation/Player. See STEP #3 for more information.
No internet in the Guest Operating System
By default, in the newer release of VMware Workstation, if you don't set the NIC type as vmxnet3, you'll have issues getting an IP Address in the VM and due to this, the internet may not work in the guest Operating System. Make sure the host computer is connected to the internet.Navigate to C:\Users\%USERPROFILE%\Documents\Virtual Machines\macOS Sonoma
Right-click on the Virtual Machine Configuration File ending with .vmx extension and open it using Notepad
Find the line ethernet0.virtualDev = "e1000e" and replace it with ethernet0.virtualDev = "vmxnet3".
Installation is taking longer time than expected and I see no progress
If you notice that the installation is taking way more than a longer time and see no progress, use Task Manager (CTRL+ALT+DEL) to check the resource usage. Task Manager will allow you to keep an eye on the installation process. Check the Wi-Fi and/or Ethernet and Disk section under the Performance Tab in Task Manager. The installation will only begin after the recovery downloads 12GB (approx) installer and it very much depends on the internet speed you have and then the disk speed. During installation, you can check the VMware process to make sure the Virtual Machine is operating properly.Cannot Drag and Drop File Sharing
Make sure you have installed VMware Tools and have allowed access to vmware-tools-daemon. See the Postinstallation section for more information.Sleep/Wake is not functional
Unlike several other functions (such as Graphics acceleration), Sleep/Wake is broken on VMware Workstation/Player.Stuck at boot via OpenCore
Ensure the svga.present is set to FALSE
No Graphics Acceleration
Ensure you're using a native (driver-free) Graphics Card for GPU passthrough and the VBIOS is loaded
- ROMEnabled
VBIOS loaded
scga present false
No healthy upstream
Refresh the web UI and re-login
Failed to power on virtual machine macOS. Invalid memory setting: memory reservation (sched.mem.min) should be equal to memsize(8192). Click here for more details. - dismiss
Failed to power on virtual machine. Invalid memory setting
If you have configured passthrough and
Failed to power on virtual machine. Module 'DevicePowerOn' power on failed
If you’re using VMware ESXI 7.X, there is likely a problem with PCI Passthrough. If you restart the ESXi host and try to power on the VM or (in case if the VM is set to automatically power on), the VM will likely not boot up. This is because, the passthrough settings are not persistent across reboots. Every time you reboot the ESXi host, you’ll need to Toggle passthrough or powering on VM will fail immediately as the passthrough isn’t persistent across reboots. This issue is fixed in ESXi 8.X versions as once you Toggle passthrough the PCI devices, it remains persistent across reboots as well.Crashing pink screen when shutting down VM
ESXi Host Crashes when Shutting down VM with PCI Passthrough
A brief note about an issue that may occurs with VMware ESXi virtualization solutions when PCI passthrough is used. Then the host may rashes when the virtual machines (guests) shut down.
When this happens, you must power down the ESXi server/host and/or wait for a couple of minutes and then power on the ESXi host.
not using a hardware that has a native support under macOS, can be quite frustrating on bare metal and as well as on VMware ESXi.
Last edited: