Running Windows on an M1 Mac
Updated: May 27, 2022
First and foremost, the thing to understand is that the standard installations of Windows won’t work. They are designed for Intel processors (known as x86 or x64 processors). The new Apple M1 silicon is based on the RISC processors designed and licensed by ARM. Apple do supply the Rosetta 2 app that allows apps designed to work on Intel processors to be run on Apple silicon, but this isn’t a fix for installing a VM. You have to have an operating system designed for that processor architecture.
So what’s the solution?
Well, first you’re going to need a special release of Windows 11 that is designed for ARM processors. Head over to Windows Insider Previews and sign up at https://insider.windows.com/en-us/
Once you’ve registered, you can visit https://www.microsoft.com/en-us/software-download/windowsinsiderpreviewARM64 and login to download Windows 11 ARM. This will give you a 10GB VHDX file that is designed to be used in Hyper-V. That in itself is a problem as Macs don't support Hyper-V.
So this is where things start to get tricky.
If you want to run the VM on a Mac, you need something that will work on a platform other than Hyper-V and for that, you’ll need to change the format of the VHDX file. Unfortunately, this step needs the use of a PC.
Rename the VHDX file to something simple like Win11ARM.vhdx and copy it onto a USB stick. On a Windows PC, download qemu-img from https://squarecubed.click/qemu and expand the zip file into a convenient folder. From a command line, use the following command:
Qemu-img.exe convert -f vhdx -O vmdk E:\Win11ARM.vhdx E:\Win11ARM.vmdk
(*replace E:\ with the source path of the vhdx file and the destination path of the new vmdk file)
This will give you a vmdk file that can be recognised and used by VMWare Fusion. Copy that new file back to your M1 Mac.
Thanks to Rosetta 2, VMWare Fusion will work on an M1 Mac but VMWare have released a version of the app designed for the new platform. Sign in to your VMWare account and download it from https://vmware.com/go/get-fusion-m1
Right, it sounds like you are ready to set up the VM. Fire up the VMWare Fusion app and click the Plus symbol to set up a new VM. Choose ‘Create a custom virtual machine’
and select ‘Other 64-bit Arm’ from the list.
Now choose to use an existing disk and point it to the vmdk file that you have created and copied onto the Mac. Tell it to ‘Take this disk away from the virtual machine currently using it’ and click Choose.
Before you start up the new VM, you’ll probably want to change some settings. Give the VM at least two processor cores to play with and at least 4GB of RAM. Now boot up that sucker and get ready for some more grief.
The VM will start going through the Windows 11 Welcome route and will ask you for the language version, keyboard layout and so forth. Then it will get to the stage of connecting to the local network and will grind to a halt. The Insider Preview version of Windows 11 ARM won’t automatically connect to a network in a VM. Time for some fun and games.
As you get to the screen that tells you to connect to a network, there won’t be any visible options that allow you to do so. Instead, you’ll need to press Shift+F10 to bring up a Command Prompt. Except that you can’t. VMWare Fusion won’t pass that key combination to the VM. Go into the Options of the VM and click on the Keyboard and Mouse. Double click on the Windows 10 Profile and click the Plus symbol to add a key mapping. I selected Ctrl + Shift + Caps Lock in the From field and Shift + F10 in the To field.
Once you’ve added this, close the Options and return to the VM. Press your key combo to send Shift + F10 to the VM and you’ll get a Command Prompt window. Use the following commands:
bcdedit /debug on bcdedit /dbgsettings net hostip:xxx.xxx.xxx.xxx port:yyyyy
(*In the hostip section, you’ll need to select an unused IP address from your network. The port can be anything you like provided it is between 49151 and 65535. I used 55555 for simplicity.)
This will generate a key for you and won’t appear to do anything else. Shutdown the VM and restart it. Your Mac will give you a security alert that the VM is trying to monitor something on your local network. Accept the security warning and allow the VM to boot. Go through the Windows 11 Welcome process again and, hey presto!, the VM will connect to the network and start to download updates.
You’re now on the home straight. Just finish the Wizard, login using a Microsoft account and you’ve got your Windows 11 VM.