Tommi's Scribbles

Best VM Software for M1/M2 Macs Running Ventura

Best VM Software for M1/M2 Macs Running Ventura
  • Published on 2023-05-09

Virtual machines, or VMs, are a useful tool for modern development. In addition to giving access to different operating systems, VMs allow separating concerns. For example, you can run a specific VM for work, or one for each of your different clients.

However, when it comes to Macs and especially ones equipped with Apple's new chips, things get a bit murkier. So let's do a quick review of each option available and try identify the best tool for the job.

NOTE: For this article, I am focused on running Linux/Unix systems in a VM. If you are looking to run Windows, you might have different results.

Oracle VM VirtualBox

Oracle has a somewhat popular and what seems to be a nice VM called VirtualBox. Unfortunately, the Apple M-series (arm64) support is in developer preview as of this writing. I tried downloading and using the preview, and couldn't really do anything without VirtualBox crashing.

So it is safe to say that, at this time, VirtualBox is not an option for Apple M1/M2 virtualization needs.

Pros

Cons

Parallels Desktop (AppStore version)

Parallels is another household name when it comes to running guest operating systems on macOS. The focus of Parallels has usually been running Windows. However, it is equally skilled in running Linux and Unix distributions.

Based on a lot of forum posts, and my initial troubles, the Parallels Tools package you need to install to get much needed features such as clipboard sharing between the host and guest operatings systems is sometimes lagging behind in support. However, after switching my desktop environment on Debian 11 from my preferred (fluxbox) to an alternative, more popular environment I never encountered any issues.

Compared to UTM, Parallels sweeps the floor with audio and camera device sharing capabilities. Both are crucial features if running a work system on the guest OS. And both work like a charm with Parallels.

Price of Parallels could be an obstacle though. Clocked at 99 euro / dollars a year, the price tag is quite steep. Also interestingly, running latest Fedora 38 just froze the VM. I did not test other RHEL/CentOS/OL family systems, but if you plan to run an enterprise Linux distribution, I highly recommend testing out the free trial available first.

Pros

Cons

VMWare Fusion

VMWare is another household name in the VM world, especially popular on the enterprise side of things. VMWare Fusion is the virtualization product for macOS.

Like Parallels, getting the full guest OS / host OS integration working with VMWare Fusion requires jumping through some hoops on Linux and FreeBSD. Especially on M1/M2, where the package open-vm-tools might not be available for aarch64.

For Debian 11, you need to enable the backports to get access to the open-vm-tools package. This isn't necessarily a bad thing, since you also get access to a newer git with ssh key commit signing. But an extra hoop nonetheless.

Latest Fedora, while a bit on the heavier side, runs fine unlike on Parallels Desktop. Fedora even shows a VMWare specific splash screen which is a cute touch.

Where VMWare falls short though is the amount of random outgoing connection the application makes. If you don't give the application free reign to make connections as it pleases, the constant popups from your firewall will drive you mad.

If you do however, well, who knows what you expose your VM / device to.

Pros

Cons

UTM (AppStore version)

UTM is based on the venerable QEMU. While UTM is entirely free, you can also support the development buy purchasing an AppStore version of the software.

UTM does a good job hiding most of the complex configuration while still leaving options available for those who need them. You can also emulate and not only virtualize. This allows running, albeit more slowly, a non ARM architecture distribution if needed.

This can be useful if for example you need to run some older node.js or container systems that only have amd64 binaries available. Or if you need to build for such systems on your Mac.

However, things are not all roses with UTM either. UTM provides some useful integrations between the host and guest operating systems through the installation of spice-vdagent.

However, one key thing missing is the lack of mapping CMD+C to CTRL-C and so on. This makes switching use between the host OS and guest OS a pain: you have to switch your muscle memory shortcuts on the fly, which is an unnecessary context switch.

I have also had a lot of challenges with the virtualized audio. For some reason, on the default settings, there are five input devices available on the guest OS. And none seem to actually capture the microphone input from my Macbook.

The latest version also added a backdoor to the application. While the team was quick to update the terms and conditions and make clear the application now dials home, such changes undermine the trustworthiness a bit.

Pros

Cons

Conclusion

In the end, I chose to keep my initial daily driver UTM around for when I need to emulate systems. For my actual VMs, I chose Parallels over VMWare. The main decider was the fact that VMWare Fusion comes outside of the App Store, and using VMWare Fusion comfortably would require giving it free connectivity. As I love VMs for the added security (there aren't too many cases of where the sandbox has been broken), opening a massive network hole feels wrong.