Mac OS X,  Mac Security

Use UTM To Run Virtual Machines of macOS from macOS

UTM is a virtualization tool available on the Mac App Store at https://apps.apple.com/us/app/utm-virtual-machines/id1538878817?mt=12 with a GitHub at https://github.com/osy. UTM uses the new virtualization framework (documented here) from Apple, so runs the most modern virtualization stack currently available on a Mac. It also emulates via the QEMU system emulation. It can run guest operating systems in Windows, Linux, etc – emulating RISC, ARM, Intel, etc.

Installation from the App Store is easy. Once installed, open the UTM app and click on the plus sign to create a new virtual machine. Here, there are options to Virtualize or Emulate. Given that we’ll be installing a beta OS from Apple for this example, we’ll click Virtualize.

The list of operating systems will reflect those that can be run as virtual machines with the current architecture. For a Mac running macOS 12, 13, etc, this will be the first option so click there.

The next screen gives the option to either install the OS the host operating system is running or a different version of macOS via an IPSW. Either click Continue for the same OS or click Browse and select the IPSW obtained from the Apple Developer portal.

Once the IPSW is selected, choose the virtual hardware to allocate to the virtual machine. The defaults for Memory and how many CPU Cores should be fine for an initial experiment (and these can be changed later).

The next screen decides how much space the virtual machine will occupy. This pulls the capacity from the available hard drive space for a machine. 64 GB is a fine amount to start with, but go below 32 and there may be some issues.

Review the information in the Summary screen and click Save to start creating the new virtual machine. Make sure the IPSW is the one to create the specific OS desired.

Once the VM has been created, select it in the left sidebar to see more settings available and click the icon in the upper right corner to change any settings. The first option is the Information screen, which just includes some information (I like to put the date I created a VM and a version number (or other naming scheme) in the Notes box.

The System options is where cores can be edited and memory added. Again, wouldn’t recommend below 4096 memory for most uses.

The Boot tab provides an option to name the guest OS (what is seen in UTM) and change the IPSW (best to just start a new guest OS though).

The Display is the graphics. This usually works well with the default settings, but can be improved if needed.

The Network screen shows the MAC address of the VM and provides options to communicate. The Shared option allows the guest and host operating systems to access the network interface and so work well. For dedicated services, consider the Bridged setting for performance purposes.

The next options create image files for the VMs. If deleting one, use the Delete Drive option or to add an addition volume into /Volumes, use the New Drive button. Keep in mind these are image files so don’t over-commit how much storage is available to boot the host OS and have a useful machine when not using VMs.

Double-click on the VM and is should fire up and allow a user to run the startup process(es).

In general, UTM is now one of those apps that should probably be a part of every Mac Admins toolbelt. It’s great to have some more granular features with a VMware or a Parallels, but the ease of use and speed of UTM is unparalleled. Which is impressive given it’s so inexpensive. Further, there’s a gallery of other interesting guest operating systems, like Mac OS 9.2.1! That’s available at https://mac.getutm.app/gallery/.

The