Skip to content
let’s get virtual

Apple’s Virtualization framework is a great, free way to test new macOS betas

VirtualBuddy and other apps make it pretty easy to run macOS on top of macOS.

Andrew Cunningham | 81
Virtualizing macOS versions like the Ventura beta is a good way to experiment without blowing away your main OS install. Credit: Andrew Cunningham
Virtualizing macOS versions like the Ventura beta is a good way to experiment without blowing away your main OS install. Credit: Andrew Cunningham
Story text

One of the coolest power-user Mac features of the Apple Silicon era is Apple’s Virtualization framework. Normally the purview of paid software like Parallels Desktop or VMWare Fusion, virtualization lets you run multiple operating systems on one Mac at the same time, which is useful for anyone who wants to run Linux on top of macOS, test an app they’re developing in different versions of macOS, or take a look at the latest macOS Ventura beta without risking their main install.

Apple’s documentation and sample projects provide everything you need to get a simple VM up and running with no additional software required. Still, some independent developers have built simple, free apps on top of the Virtualization framework that provides a GUI for customizing settings and juggling multiple guest OSes.

Getting ready to virtualize

My favorite for running macOS on top of macOS is VirtualBuddy, which streamlines the process of downloading the files you need to get a Monterey or Ventura virtual machine up and running. This is the app we’ll be using to set up our sample VM in this guide.

Another app worth looking into is UTM, which uses the Virtualization framework to run ARM operating systems on top of the ARM version of macOS but which also provides an easy-to-use front end for the QEMU emulation software. QEMU can emulate other processor architectures, including but not limited to x86 and PowerPC. Like all emulation, this comes with a performance penalty. But it’s an interesting way to run old operating systems on a shiny new Mac, and UTM’s VM gallery includes sample VMs for lots of Linux distros, classic Mac OS, and Windows XP and Windows 7.

If you want to virtualize macOS Monterey on top of macOS Monterey, you won’t have to download anything else. If you’re looking to virtualize Ventura on top of Monterey, you’ll want to install and run the beta version of Xcode 14 from Apple’s developer site before you start. When I’ve tried this without Xcode installed, macOS has tried (and failed) to download extra software to make it work—sort of like how macOS needs to download additional software the first time you use Rosetta. With the Xcode beta installed, everything works as intended (but if you can find a way to get this working without installing a 33GB app that takes an hour-plus to install, I’d love to know about it).

You’ll also want to pay attention to the hardware requirements for virtualization. VirtualBuddy and the Virtualization framework don’t have hard-and-fast requirements aside from requiring an Apple Silicon chip for macOS-on-macOS virtualization. But you’ll be running two entirely separate OSes on the same computer, and that comes with RAM and storage requirements. Personally, I wouldn’t recommend trying to virtualize macOS on an Apple Silicon Mac with less than 16GB of RAM. And more is better, especially if you’ll also be running heavy apps like Xcode alongside (or inside) your VM.

By default, VirtualBuddy keeps all of its files (including VM disk images) in a folder at ~/Library/Application Support/VirtualBuddy. Mac users with limited internal storage might want to change that to an external drive to save space, since the default disk size for new macOS VMs is 64GB. Any external SSD attached over a 5Gbps or 10Gbps USB connection or the Thunderbolt bus should feel fast enough for most things. I use a cheap NVMe SSD in a 10Gbps USB-C enclosure—not this exact one, but one like it.

Using VirtualBuddy

The easiest way for most people will be to let VirtualBuddy download your preferred macOS version for you.
Once you have an .ipsw file, installation happens in the background with no user interaction required.

Especially compared to professional paid virtualization apps, VirtualBuddy’s interface is dead simple. When you go to create a new virtual machine, you’ll have three options: make one from an .ipsw file you’ve downloaded, let VirtualBuddy download one of a few different .ipsw files that it knows about, or make VirtualBuddy download an .ipsw file from a URL you’ve entered manually.

These .ipsw files are complete restore images for Apple Silicon Macs in recovery mode (ipsw stands for “ipod software,” so Apple has been using it for quite a while). Officially, they should be downloaded from Apple’s developer site, but the Mr. Macintosh site keeps a record of .ipsw download links for all kinds of current and past macOS versions if there’s a specific version you need to test against.

Whether you’re letting VirtualBuddy download your .ipsw file or supplying your own, once VirtualBuddy has it (and as long as you have the right Xcode version for Ventura installs), the app will create a new VM with the disk size you’ve specified and install macOS. After a few minutes, it will boot up to the same setup screen you see when you first set up a new Mac or a fresh macOS install.

Display scaling makes the initial setup wizard super tiny on Retina Macs or those with external 4K and 5K displays, but you can fix this later.
Display scaling makes the initial setup wizard super tiny on Retina Macs or those with external 4K and 5K displays, but you can fix this later. Credit: Andrew Cunningham

A VirtualBuddy VM will use the same screen resolution as the Mac you’ve installed it on but in an unscaled “1x” display mode. The upshot is that on any Retina Mac screen, you’ll need to put up with a super-tiny version of the setup assistant. Go into System Preferences or Settings and choose a scaled (or HiDPI) display mode, and everything will return to a legible size. Make the VirtualBuddy window full screen, and you’ll almost think you were running macOS directly on the hardware instead of in a VM.

At this point, you might want to make a backup copy of your VM in case something goes wrong or you want to start from scratch without doing everything over again. VirtualBuddy doesn’t do this itself, but because of the way APFS works, you can just go to your Library folder and duplicate any of your VMs without taking up additional disk space. This won’t help you if you need multiple VMs for multiple macOS versions (12.4, 12.5, 13.0, and on), but it can save a lot of space if you want a bunch of VMs that use the same macOS version.

VirtualBuddy’s VM selection interface. Duplicating VM files is the best way to take snapshots without sucking up a bunch of extra disk space.
VirtualBuddy’s VM selection interface. Duplicating VM files is the best way to take snapshots without sucking up a bunch of extra disk space. Credit: Andrew Cunningham

The current “release” version of VirtualBuddy (1.0.3 as of this writing) doesn’t offer controls to adjust how much RAM or CPU resources a VM is allowed to use; on an M1 MacBook Air with 16GB of RAM, my macOS VMs used 8GB of RAM and four CPU cores. As Eclectic Light Company’s Howard Oakley points out, VMs don’t distinguish between the M1’s performance and efficiency cores, and the host OS tends to allocate the VM’s CPU usage to the P cores—an M1 Pro, Max, or Ultra chip with many P-cores will be a must if you want to run more than one VM simultaneously. Version 1.2 of VirtualBuddy will add hardware configuration options, or you could use the UTM app instead. Update: And now version 1.2 is live!

By default, all keyboard shortcuts (including those for screenshots, opening Spotlight, and so on) still go to the host version of macOS. If you want to send them to the guest OS instead, VirtualBuddy lets you change that setting before launching your VM.

Limits of the Virtualization framework

The Virtualization framework is fun to play around with, and it can be a powerful and useful tool, but it does have some limitations you should know about.

First, it provides no graphics acceleration for non-Mac guest operating systems. That means no games or 3D apps, and you may even notice tearing or stutters in the animation of regular two-dimensional desktop windows.

You do get graphics acceleration in macOS, but a bigger problem for people hoping to test new OS features is that you won’t be able to sign in to an iCloud account; attempting to do so triggers an error message. Some features that require direct hardware access—AirDrop and any other Continuity features that rely on local Bluetooth and Wi-Fi to communicate, for example—also won’t work in a VM. You also can’t virtualize any version of macOS older than Monterey; Big Sur .ipsw files fail with an error message, and Catalina and older versions only support Intel Macs.

On the subject of Intel Macs, the Virtualization framework does support running Linux VMs on Intel Macs, but it explicitly requires an Apple Silicon Mac for running macOS on top of macOS. Paid software like Parallels Desktop is still probably the simplest way to run macOS VMs on an Intel Mac, and they at least have the benefit of being able to run Big Sur, Catalina, and a bunch of older versions of macOS.

Listing image: Andrew Cunningham

Photo of Andrew Cunningham
Andrew Cunningham Senior Technology Reporter
Andrew is a Senior Technology Reporter at Ars Technica, with a focus on consumer tech including computer hardware and in-depth reviews of operating systems like Windows and macOS. Andrew lives in Philadelphia and co-hosts a weekly book podcast called Overdue.
81 Comments