Running Intel Windows 10 on an M1 Mac

Yes, it is, in fact possible (and in fact, it’s free, too). No, you will not be playing games on it. To get it to work, you will be emulating x86-64 instructions, rather than pure virtualization, which means it will be noticeably slower than running on an Intel based Mac.

To get it working, I took an existing VM that I had running in VMware Fusion on my previous Intel based Mac. The engine I am using is UTM, which is a nice front end for the qemu open source project. The instructions on the UTM site involve you doing some weird hoop jumping to create an ISO. There is a much easier way, if you already have a running virtual machine. If you have a Hyper-V virtual machine, you can just import the VMDX hard disk image directly in to UTM (though why you would use the unmitigated disaster that Hyper-V is I’m not sure…). If you are using VMware, there is one extra step. You have to convert the VMDK file to a VHDX image. I’m not sure why UTM requires this and will not use a VMDK directly, but there you go. Locate the VMDK file from your VMware VM inside the virtual machine folder. If you see a bunch of vmdk files inside with -## number extensions, then you need to go into VMware settings and uncheck the option to split it into 2GB chunks. You will also need to delete any snapshots you have to make sure you have the most up to date VMDK.

To convert the image, you are going to need the qemu-img tool from the qemu package. Unfortunately, UTM does not include the tool; only the library. For me, the easiest way to get the tool was to use MacPorts and “sudo port install qemu“. If you are a Home Brew user, you should be able to install their version.

The command to convert the image is:

qemu-img convert -f vmdk -O vhdx Windows-10-x64.vmwarevm/Virtual\ Disk.vmdk  Windows-10-x64.vhdx

Now that you have the vhdx image file, you create a new virtual machine in UTM, and choose “Emulate” for the type. Under Pre-Configured, choose “Windows”. Check “Import VHDX Image”, Check or Un-check “UEFI Boot” to match whatever was set in VMware, then “Browse” for the VHDX file you just created. And you are mostly good to go. Keep in mind that when you commit the virtual machine, it is going to convert the image into its own native format, so you will need enough space to have yet-another-copy. Another drawback of UTM is you do not get to pick where VMs live. It will store them in /Users/<your login name>/Library/Containers/com.utmapp.UTM/Data/Documents/, so make sure you have enough space there for the VM. There is probably a way to use symbolic links to house the VMs elsewhere, but I have not experimented with that so far.

You can set the amount of RAM you want to give to the VM, and the number of CPUs. I gave my 8GB of RAM, and left the CPU count as “Default”. For the drive interface, leave it as IDE. NVMe did not boot at all for me. IDE does, so I left it at that. I will update this if I get any of the other interfaces to work. I did change the port type of the CD drive to USB, and that works well.

At this point, you should be able to boot. There are two words that apply to this whole process: Be Patient. When it boots, you will likely be confronted by a very tiny screen. You will have to fumble your way through the tiny screen to get logged in. At this point, you will want to download the SPICE tools, and attach the ISO to the CD drive of the VM. Run that installer, and then reboot.

Now you can set the screen resolution to something less stupid, and actually use the VM.

Some Caveats/Tips:

  • Emulated virtual machines are going to be slow. Patience is a virtue.
  • Sometimes the machine will not reboot or shutdown completely. If you get a black screen with just the cursor, and it stays that way for a long time, just power the VM off.
  • You might want to uninstall VMware Tools while you are booted in VMware. When I tried to uninstall after, it left vestiges.
  • Since the hardware is changing significantly, Windows will need to be re-activated. Make sure you have your license key handy before you start the process.

2 thoughts on “Running Intel Windows 10 on an M1 Mac”

  1. thanks for sharing.
    I’ve been trying to get this to work but other than the “Starting windows” logo for about 5s I just get a black screen.
    would you have any suggestions to troubleshoot this further? I tried giving it more cpu/ram resources but didn’t seem to make a difference.
    I’m basically trying to run one of the vms from but so far I couldn’t get any to boot 🙁

    • Well, the first rule is to be VERY patient. Running it in emulation mode is VERY slow. Give it time, and it should catch up to you. It could take many minutes, especially on a first run. Windows is fairly slow on native hardware during that initial set up.

      I took a VM that was already configured, which helped with the load times, but even there, it takes a few minutes after entering the password to be usable.


Leave a Comment