Installing Windows and Linux Smoothly on Mac with UTM: Free, Fluid, and No Parallels Needed

Virtualization tutorial - IT technology blog
Virtualization tutorial - IT technology blog

Just switched to an Apple Silicon MacBook (M1, M2, M3)? You might find it frustrating when certain specialized software only runs on Windows. Or perhaps you’re a developer needing a clean Linux environment for debugging without cluttering your host machine. Parallels Desktop is pricey with its annual subscription, and VMware Fusion can sometimes feel heavy. That’s where UTM comes in as the perfect savior.

Quick start: Get a Linux VM running in 5 minutes

If you don’t want to deal with complex configurations, you can try this to see how fast UTM really is:

  1. Installation: Just open Terminal and type:
    brew install --cask utm
  2. Download from Gallery: Go to the UTM homepage, find the Gallery section, and download a pre-built Linux image (like Debian 11 or ArchLinux).
  3. Import: Open UTM, select “Open VM…” and point to the downloaded .utm file.
  4. Run: Click the Play button. The VM usually takes about 15-20 seconds to boot to the desktop.

Technical breakdown: Why is UTM free?

Simply put, UTM is a modern GUI layer built on top of QEMU — a legend in the open-source virtualization world. Instead of reinventing the wheel, UTM leverages Apple’s own Hypervisor framework. This allows VMs to achieve near-native performance on ARM architecture.

When creating a VM in UTM, keep these two modes in mind:

  • Virtualize: Runs an OS with the same architecture as your CPU (e.g., an M2 Mac running Windows ARM). It’s extremely fast because the CPU doesn’t have to translate instructions.
  • Emulate: Runs an OS with a different architecture (e.g., an M1 Mac running old x64 Windows). Performance will be significantly slower; use this only as a last resort.

I usually manage a homelab with Proxmox including 12 VMs for production testing. However, when I need to quickly check a Python script on Ubuntu or test a website on Edge, I always open UTM. It’s incredibly lightweight and, most importantly, doesn’t run background processes that drain your battery like paid software.

How to install Windows 11 smoothly on ARM MacBooks

Installing Windows on UTM isn’t like burning an ISO to a USB drive in the old days. Here is the standard modern workflow:

Step 1: Get the Windows ARM installer

Don’t use a standard Windows x64 ISO; it will run painfully slow. You should install CrystalFetch from the App Store or via Brew. This tool helps you download the Windows 11 ARM ISO directly from Microsoft’s servers and automatically builds a proper installer for Mac.

Step 2: Set up the Virtual Machine

  1. Select Create a New Virtual Machine -> Virtualize.
  2. Select Windows and point to the ISO file downloaded in Step 1.
  3. RAM Configuration: Allocate at least 4GB. If your machine has 16GB of RAM, feel free to give it 8GB for a better experience.
  4. Make sure to check Install Windows 10 or higher so UTM can automatically load the necessary drivers into the installer.

Step 3: Drivers are key

After the initial installation, you’ll notice a very low screen resolution and no internet connection. Don’t worry, this isn’t a bug. In Windows, open the virtual drive that UTM automatically mounted, find and run <a href="https://itfromzero.com/en/virtualization-en/spice-protocol-the-ultimate-secret-for-remote-kvm-access-as-smooth-as-a-physical-machine.html">spice-guest-tools</a>. After a restart, Windows will recognize the network and audio drivers and automatically resize the display to fit the window.

Advanced tips for DevOps and Web Developers

If you need powerful communication between your VM and the host machine, don’t overlook these two features.

Networking Modes

  • Shared Network (NAT): Shares the Mac’s network connection, sufficient for downloading libraries and browsing the web.
  • Bridged: The VM will have its own IP address on the local network. Very useful when hosting a Web Server on the VM and wanting to access it from your phone for testing.

Sharing data via VirtioFS

To code on macOS but run on Linux, use VirtioFS. In the Sharing section of the VM, select your project folder on the Mac. On Linux, you just need a single command to mount it:

sudo mount -t virtiofs share_name /path/to/mount

Pro tips to make your VMs fly

Running a VM on a laptop can often lead to heat and battery drain. Here are a few tips to optimize performance:

  1. Prefer VirtIO: Always choose VirtIO drivers for storage and networking to get the highest IO speeds.
  2. Don’t over-allocate CPU: If your chip has 8 cores, only assign 4 to the VM. Allocating too many will cause macOS and the VM to compete for resources, lagging both.
  3. Manual Snapshots: UTM doesn’t have a quick Snapshot button yet. Before trying something risky, shut down the VM and copy the .utm file as a backup. This is safe and easy to manage.
  4. Enable GPU Acceleration: For Linux VMs, check GPU Acceleration in the Display settings for a smoother UI and to prevent screen tearing when scrolling.

In summary, for everything from learning to technical work, UTM is a solid replacement for paid software. You’ll save about $80-$100 in subscription fees every year. That money is better spent on RAM upgrades or Mac accessories.

Share: