DEV Community

Cover image for MacOS Virtualization using VMware
Zoo Codes
Zoo Codes

Posted on • Updated on

MacOS Virtualization using VMware

New week new project! Back on the virtualization journey. This time I am running MacOS 14 (Sonoma) in a VM using VMware on a Linux host. And so far so good.

MacOS on VMware

Reasons for switching from QEMU + KVM to VMware

If you saw my last update, I got MacOS running using QEMU + KVM on a Linux host.

MacOS on QEMU + KVM

Macos setup

However there a few major issues I ran into with using QEMU + KVM:

  1. I could only get MacOS 13 (Ventura) installed. Sonoma continually failed on installation and I couldn't find a fix. Maybe its because its a new version hence needing more time to develop and fix.

  2. Updates were available and would download but failed to install. ( Although the system was usable I felt its important to mention)

updates

  1. Apple ID was a pain point to get working. I did apply a few tweaks to get working. This important if want use the Apple Store and by extension XCode.

It should be noted that performance was usable once proper tweaks were in place.

Enter VMWare

Now I feel like a should preface this with: I am not championing VMware over using QEMU + KVM setup. I am a full-time Linux user for a better part of 5 years and I use QEMU as my virtualization platform of choice for Linux and Windows VMs. In this case, it's a matter of getting a the job done for this specific task. And of course the fact VMWare that its a paid closed-source product is a key point here.

Now installing a MacOS VM differs from most other guests on VMware. Lets run through the steps:

  • I had to fix a well known issue with running VMware on Linux - compiling your own kernel modules. This isn't much of a problem for seasoned users but for others it might be a deal breaker. This repo will save you hours of searching google.

  • I needed to install an unlocker from GitHub to enable options in the main screen.

VMware unlocker

  • As a side note also run the update-tools script in the repo.

  • I had to download an ISO (15 GB). Use this link to read more and get download links.

  • Install open-vm tools (this enables a slew of optimizations).

VM Installation

Once you have the prerequisites done. The process is relatively straightforward as outlined in this guide. One thing to note is will take a while when running for the first time. Let it finish. Once done you should run through the first time setup and enter all the details

Note: I did 2 major issues with the VM once it finished installing.

  1. No internet connectivity.

  2. Frequent crashes and restarts.

MacOS VM crash-1

MacOS VM crash-2

These errors made the VM virtually unusable. However, I found a working solution in the VMware forums. It outlines a fix by changing a line your vmdx file that relates to ethernet device. This worked amazing and now internet is working and the crashes have stopped. Updates and AppleID sign-in are also working.

Conclusion

In summary, virtualizing MacOS with VMware provides several key benefits like unified application access, optimized performance through direct hardware access, and snapshots for easier testing. For most tasks, the small tradeoffs in native hardware performance are negligible. As Macs gain popularity, technologies like VMware will remain important for unlocking the platform's versatility by empowering users with choice. For power users especially, mastering virtual machines helps tap the full potential of Macs.

Thanks for reading! Free free to leave a comment below if you have any questions, suggestions or clarifications. You can also reach out to me on Twitter. or LinkedIn If you found this article helpful feel free to share it with others.

Buy me a coffee here.

next-time

Top comments (2)

Collapse
 
mantene profile image
Matthew Hood

Wonderful. Would it be possible to run this specially-compiled version of vmware in a docker container for use on Unraid? Or would running it in a docker container preclude it from the direct hardware access that makes it so useful in this situation?

Collapse
 
ken_mwaura1 profile image
Zoo Codes

Honestly I'm not exactly sure if it would work as it requires in-depth knowledge of running docker containers on a hypervisor. However I recommend the Docker-OSX project as may fit your needs.