A topic that comes up frequently is the ability to run Windows on an M1-based Mac. While many people swear by macOS, Bootcamp and Windows on a Mac still seem to be a widely used option. Since these M1-based devices use a different architecture - ARM - they are not compatible with the older and most widely used architecture of Mac for Windows-based computers - x86. This means that when it comes to running Windows on an M1 device, you basically have two options: use an ARM-based version of Windows, or emulate an x86-64-based computer and run a regular version of Windows. For this article, I'll be running Windows 11 for ARM using UTM on a MacBook Air M1.
If you're interested, I also made a YouTube video of this blog post. If you prefer the classic text, just follow the rest of this article:
As mentioned above, there are two ways to get Windows working on an Apple M1 based device. The first concerns virtualization, since we can't (yet) run Windows natively on an M1-based machine. The second refers to emulation, where we translate the instructions between the running operating system (in this case, Windows) and the hardware. Both methods have their advantages and disadvantages. The emulation offers maximum compatibility as it does not require software written specifically for ARM, but it is quite slow. Virtualization is faster, but requires software written for the hardware platform it runs on.
Both methods can be done with UTM (https://github.com/utmapp/UTM🇧🇷 UTM offers QEMU-based virtualization and emulation with a convenient GUI for IOS and macOS. Since QEMU is used under the hood, it is capable of emulating different processor architectures (such as x86-64), but it can also virtualize for the host architecture.
After a quick test, which I plan to write a more detailed article about in the future, using the emulation seems to be a huge overhead and ends up being too slow to use at the moment.
Only virtualization remains a real option. The downside to this approach is that there is currently no official way to license an ARM-based version of Windows. Microsoft has decided that this will only be available for sale to system builders. Another drawback is that there are very few apps built to run on an ARM-based version of Windows. Fortunately, you can run most 32-bit-based Windows applications on the ARM version of Windows, which is available for most applications.
For this article, I'm using a 2020 M1-based MacBook Air, but it should work just as well for an iMac, Mac Mini, MacBook Pro, and even the recently announced M1 Max and M1 Pro devices.
Step 1) Create a Windows 11 ISO for ARM
The first thing we'll need is installation media for the ARM-based version of Windows 11. If you're part of the Windows Insider Program, there's a version available for download that uses a VHDX file. Unfortunately, I couldn't get this to work properly and my virtual machine got stuck at the "First Steps" screen on first boot.
Since that didn't work, I decided to use the UUP dump method. UUP stands for Unified Update Platform. This is basically a deployment method that Microsoft introduced a few years ago that allows for a sort of incremental update of parts of Windows, rather than deploying everything from scratch each time. You can generate a script on the UUP dump site that will download these UUPs from Microsoft and combine them into a working ISO file.
To sum it all up, first navigate to the UUP download site:https://uupdump.net/🇧🇷 Select the arm64 version of the latest version of the beta channel:
On the next page, select your version of Windows 11. At the time of writing, it is 10.0.22000.160.
I then unchecked "Include updates", but that's not strictly necessary. Then click on “Create download package”:
As you will see, this will download a ZIP file containing some scripts. The uup_download_macos.sh script is what we need to run:
Before we can run the script, we first need to install some tools on our Mac. The easiest way to do this is to use Homebrew. Start by navigating to the homebrew website (https://brew.sh/) and copy the command that appears under "Install Homebrew":
Open a terminal window, paste the command, and press Enter. If prompted, enter your user password:
jensd@jensds-MacBook-Air ~ %/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"==> Search
sudoAccess (which may request your password). 1/opt/homebrew/share/zsh/site-functions/_brew/opt/homebrew/etc/bash_completion.d/brew/opt/homebrew==> The following new directories will be created: /opt/homebrew/Cellar/opt / homebrew/Caskroom...==> Next steps:- Run these two commands in your terminal to add homebrew to your PATH: echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> /Users / jensd/.zprofile eval "$(/opt/homebrew/bin/brew shellenv)" - Run `brew help` to get started - More documentation: https://docs.brew.shjensd@jensds-MacBook -air ~ %
At this point, Homebrew is installed on your Mac, but you need to add it to your PATH as suggested in the last output of the above command:
jensd@jensds-MacBook-Air ~ %echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> /Usuarios/jensd/.zprofilejensd@jensds-MacBook-Air ~ %eval "$(/opt/homebrew/bin/brew shellenv)"jensd@jensds-MacBook-Air ~ %
Once this is done, we can use Homebrew to install the necessary tools to be able to run the UUP dump script:
jensd@jensds-MacBook-Air ~ %sidneys/homebrew beer tap==> Playing sidneys/homebrew... 8 barrels and 22 formulas reproduced (42 files, 157.3 KB).jensd@jensds-MacBook-Air ~%instalar brew aria2 cabextract wimlib cdrtools sidneys/homebrew/chntpw==> Download from https://ghcr.io/v2/homebrew/core/ca-certificates/manifests/2021-09-30-1################## ############################################# # # ## 100.0%...x86_64cpuid.s:273:10: error: invalid operand cmpq $0,%rax ^x86_64cpuid.s:274:9: error: unknown token in expression cmoveq %rcx,%rax ^x86_64cpuid. s : 274:9: Error: invalid operand cmoveq %rcx,%rax ^make: *** [x86_64cpuid.o] error 1make: *** [build_crypto] error 1 Do not report this problem to homebrew/brew or Homebrew /core! These open issues may also help: Mac M1 chntpw won't compile (openssl 1.0 requirement not met) https://github.com/sidneys/homebrew-homebrew/issues/2
As you can see, the chntpw tool does not install because it gives an error. The OpenSSL requirement is the problem, but the error message also tells us the solution, which is to create OpenSSL yourself. See the Github link shared above for more details. Basically, you need to do the following:
jensd@jensds-MacBook-Air ~ %curl -LO https://email@example.com -LO https://gist.github.com/minacle/e9dedb8c17025a23a453f8f30eced3da/raw/908b944b3fe2e9f348fbe8b8800daebd87b5966c/chntpw.rbbrew install --formula --build-from-source ./firstname.lastname@example.org install --formula --build-from-source ./chntpw.rbrm ./email@example.com ./chntpw.rb...Patching-Datei Makefile==> make🍺 /opt/homebrew/Cellar/chntpw/0.99.6: 5 Dateien, 296,3KB, in 2 Sekunden erstelltEntfernen: /Users/jensd/Library/Caches/Homebrew/chntpw- -parche --dbf09ccee4eaf401e2680554990ee924bb0ad1dd7661a3c97d67bf796089fbbe.patch... (211B)jensd@jensds-MacBook-Air ~ %
So far, it's been a lot of steps... But finally, we can run the script we got from the UUP download site. First navigate to the directory where you downloaded and extracted the files, then run the macOS version of the script:
jensd@jensds-MacBook-Air ~ %CD downloadsjensd@jensds-MacBook-Air Descargas %cd 22000.160_arm64_en-us_professional_fdb8a3c7_convertjensd@jensds-MacBook-Air 22000.160_arm64_en-us_professional_fdb8a3c7_convert %bash uup_download_macos.shGetting the aria2 script... 22.10. 11:46:10 [NOTE] Downloading 1 item(s)[#8c33b1 0B/0B CN:1 DL:0B] ... 99.63% complete, estimated completion Oct 22 11:51:38 2021 99, 86 % complete, est to finish Fri Oct 22 11:51:38 2021 Total Translation Table Size: 2048 Rockridge Attribute Total Bytes: 0 Directory Total Bytes: 0 Route Table Size (bytes): 10 Max. Done.jensd@jensds-MacBook-Air 22000.160_arm64_en-us_professional_fdb8a3c7_convert %
As a result, you should end up with an ISO file in the directory where you ran the script:
You can move this file anywhere you want as long as you remember where the next steps go.
Step 2) Download and install UTM
Now that we have the ISO that we will use to install Windows, we need to create a virtual machine to run the installer. There are several options available for this. The best known as Parallels or VMWare Fusion. Unfortunately, they are not free, but they should work. I'll go with UTM instead.
As mentioned at the beginning, UTM offers QEMU-based virtualization and emulation for IOS and macOS. I tried to find out what the UTM abbreviation stands for, but I couldn't find it.
You can download the UTM from Github with:https://github.com/utmapp/UTM/releases/latest/download/UTM.dmg
Once downloaded, simply open the .dmg file by double-clicking on it and use Finder to move UTM.app to the Applications folder:
Then launch UTM by simply running it like any other app on your Mac.
Step 3) Create a virtual machine to install Windows 11 ARM
At this point we already have the ISO file ready to install Windows and our UTM hypervisor. Now we need to create a new virtual machine with UTM for the next step.
Start UTM and click "Create a new virtual machine":
On the first tab: Info, choose a name for your VM and, optionally, a suitable icon:
Navigate to the second tab: System and select ARM64 (aarch64) as the architecture. This corresponds to the architecture of the M1 chip, so we are not using emulation. Set the Memory slider to at least 4 GB. I already realized that a little more is much better (here I took 6GB for example). Optionally click "Show advanced settings" and set a number of CPU cores (I chose 4 here) and enable "Force multicore":
Now navigate to the Disks tab, click New Disk and change the interface to NVMe and specify a size of at least 55 GB. Then click "New Drive" again, enable the switch option, and select "None (advanced)" as the interface:
Due to a problem/bug in QEMU, it is necessary to select None as the interface. I opened this from the github UTM page, but a solution is needed so far. Enter None to provide the necessary parameters to provide an interface to our virtual CD/DVD drive.
To do this, navigate to the QEMU tab and scroll down the list until you reach the last line that says New... and add two lines like this:
After all these steps, click save to create the new virtual machine in UTM.
All that remains is to mount the Windows 11 ARM installation ISO that we created in the first step in the VM. To do this, select the virtual machine you just created from the list and select Browse from the CD/DVD dropdown menu:
Then navigate to your Downloads folder (or whatever location you move the ISO file to later) and select the ISO created in step 1:
Step 4) Install Windows 11 ARM on your M1-based device
Now that we've created our virtual machine, let's start it and discuss installing Windows 11.
Start the VM by clicking on the big game icon (see the two images above). The virtual machine will start and you will see a large UTM logo.
Be sure to click on the virtual machine right away, as you'll be prompted to press a key to boot from the ISO:
After pressing any key, the installer will boot from the ISO, and if all goes well, you will be able to see the standard Windows 11 installer, where you can choose your language, regional settings, and keyboard:
Set them however you want and click Next.
On the next screen, we need to make a few changes before clicking "Install Now." Windows 11 has some strict requirements for the hardware it can run on. Since our Macbook and VM do not have Secure Boot or TPM, we need to fix this by adding some keys to the registry.
So, on the screen where you saw Install Now, press Shift + F10. You may need to use Fn+F10 depending on how you have configured your function keys. This should open a command prompt where we can open regedit:
In the registry editor, go to: Computer\HKEY_LOCAL_MACHINE\SYSTEM\Setup and add a new key there called LabConfig. To do this, right-click Settings and select New > Key:
Name it LabConfig and right-click the key and choose New - DWORD (32-bit) Value:
Name this DWORD BypassTPMCheck. Repeat these steps a second time, but this time name it BypassSecureBootCheck. Then double click on each of these two DWORDs and change the value to 1. As a result, you should get the following:
Once this is done, we can close the registry editor and the command prompt that we opened and proceed with the installation by clicking on "Install now":
On the next few screens, choose: "I don't have a product key," accept the license, and choose: "Custom: Install Windows only (advanced)." You should end up with the question "Where do you want to install Windows?" Dialogue:
Here you can simply click Next and let the installer create the necessary volumes on the virtual disk we added in UTM. After that, Windows should copy the files to the drive and continue with the installation:
If you encounter a problem during "Get files read for installation" and the installer ends with an error like 0x800701B1 (Windows cannot install the necessary files. Make sure all the files necessary for the installation are available), restart the virtual machine and login again. This problem is the main reason for QEMU custom parameters for USB connected virtual CD/DVD drive. They seem to help, but the problem still occurs in some cases. Two tries max should get you normal.
Once all is done, the VM will reboot and you should receive the following dialog where you need to answer questions about location, keyboard layout, username, password, and privacy settings:
After answering the questions, the installation will be complete:
and you should end up with your new Windows 11 ARM desktop:
Step 5) Do some post-installation tasks
In the steps above, we achieved a working installation of Windows 11 on the M1-based device. However, if you do some research, you'll find that the system still doesn't work optimally. There is no network/internet connection and the resolution is stuck at 800 × 600.
Both of these issues can be resolved by installing SPICE Guest Tools and the QEMU drivers. They can be downloaded from the support area of the UTM website:
Open your browser on macOS, go tohttps://mac.getutm.app/support/and download the guest tools and drivers:
Then, in UTM, go to your VM in the list, select it, and change the virtual CD/DVD drive ISO to the downloaded ISO:
Then navigate to the CD/DVD drive in your Windows 11 VM and run Spice-guest-tools.0.164 (or the version you downloaded):
After that, you will find that the network adapter is available and connected:
After this step, you can also change the resolution and size of the virtual machine. To do this, right-click on the desktop and select "Display settings". You will see that you now have an additional virtual screen. Here you need to scroll down and select "Show only in 1":
The screen will flicker and you should be getting better resolution by now. If prompted, choose to keep the changes. You can change the resolution to a higher value if you want, but there may be issues with a misaligned mouse pointer.
The best thing to do at this stage is to reboot. If you get stuck with the mouse, just press Alt+F4 and restart.
Step 6) Profit!
Using the VM directly may not feel as expected. It feels a bit bulky/slow, though performance really isn't that bad. In my opinion, it works much better if you enable Remote Desktop and connect to Microsoft Remote Desktop from macOS.
First, enable remote access on your VM:
Find the IP address your VM received. You can do this by opening a command prompt and running ipconfig or by using the configuration dialogs:
On macOS, install Microsoft Remote Desktop, you can find it in the App Store, and add a PC with the IP address you found (in my case 192.168.64.4):
Connect to the VM's IP address through Microsoft Remote Desktop and enter your Windows username and password. This will give you a beautiful Windows 11 full screen experience:
With a quick look at performance, with all 4 cores dedicated to the VM and 6 GB of RAM, the results I was able to get in some basic benchmarks are really above expectations.
I'll probably write another post that goes into some more depth on performance, but here's what I've seen, for example, for Geekbench 5, which I can test on native AArch64:
Browserbench also showed a good result:
As you can see, a machine with such results is certainly not a punishment for work.
While it takes a few steps and time, this process should get you a Windows 11 ARM-based VM on your M1-based device.
- Select “Windows”. ...
- Pick the amount of RAM and CPU cores you wish to give access to the VM(the Defaults is fine). ...
- If you have a directory you want to mount in the VM, you can select it here. ...
- Press “Save” to create the VM. ...
- Check the box that says Show Advanced Settings.
To install Windows 11 ARM, run Parallels Desktop, then click on the Parallels icon in the Mac menu bar > Control Center > + > Get Windows 11 from Microsoft > Continue > Install Windows. Windows will be downloaded and installed automatically.Is UTM good for Mac M1? ›
Otherwise, UTM may be a great option if you have M1/M2 machine and it is currently free. For Intel Mac, VMWare Fusion is also a great option relatively good performance. Again, VM performance is very much depending on what you do.Can you install Windows ARM on Mac M1? ›
Running Windows on an M1 Mac
Apple silicon-based Macs (that is, Macs with an M1, M1 Pro, M1 Max, M1 Ultra, or M2 chip) use a variant of ARM processors. Apple has decided not to support running Windows with Boot Camp on Apple silicon Macs. While Parallels Desktop can run Windows on an M1 Mac, VMware Fusion cannot.
You can now run Windows 11 on your M1 Mac for free.Is UTM free for Mac M1? ›
UTM is and always will be completely free and open source. The Mac App Store version is identical to the free version and there are no features left out of the free version.Is Mac M1 chip ARM64? ›
Given that choice, the Apple Silicon M1 (and M2) chip is an AArch64 architecture. AArch64 is another name for ARM64, so it is an ARM architecture. The AMD64 architecture is what is also known as x86_64, x64 or even Intel 64-bit architecture.Can I install Windows 11 on Arm processor? ›
Windows 11 adds the ability to run unmodified x64 Windows apps on Arm devices! This ability to run x86 & x64 apps on Arm devices gives end-users confidence that the majority of their existing apps & tools will run well even on new Arm-powered devices.Is UTM good for Mac? ›
Basically, UTM allows you to run Windows, Linux, and more on your Mac, iPhone, and iPad. The best way to think of UTM is that it is a GUI version of QEMU, without needing you to have the knowledge to grapple with the plethora of command line options and flags of QEMU.Is Mac M1 ARM or ARM64? ›
So, developers need to be able to run x86_64 containers on newer Mac computers that are built with an Apple Silicon (M1) processor, which is an ARM64 architecture.
Unlike Intel chips built on the x86 architecture, the Apple Silicon M1 uses an Arm-based architecture much like the A-series chips that Apple has been designing for iPhones and iPads for years now.How many CPU cores for UTM? ›
Leave it at two cores trust me. if you want to reduce resources reduce the amount of ghz allocated to the vm to the total of one core. It has the same effect but allows the utm to stretch it's legs when needed. UTM on a single core is not a good idea.How to install Windows 10 ARM on M1 Mac? ›
The first thing you need to do is to download the Windows 10 ISO file from Microsoft's website. Once you have downloaded the ISO file, you need to open Bootcamp Assistant app. Follow the on-screen instructions to complete the installation process, and then you will be able to use Windows 10 on your Mac.Why M1 Cannot install Windows? ›
If you search for Boot Camp on an M1 or M2 Mac, you won't find it because Apple has not made an Apple Silicon chip compatible version of Boot Camp for M1/M2 Macs. This means you can't dual boot in Windows or macOS on an M1 or M2 Mac like you can on Intel Macs.Is there a Windows 11 Pro ARM version? ›
Can Windows 11 Run on ARM? Like its predecessor, the newest iteration of Microsoft's popular operating system can run on compatible ARM devices. However, Windows 11 now uses the new ARM64EC application binary interface (ABI) for ARM devices.Will Boot Camp come to M1 Macs? ›
If you have an Apple M-series chip, Boot Camp will not work as it requires a Mac with an Intel processor. To install Windows on your M-series Mac, you can use Parallels Desktop for Mac.Will Windows 11 run on M1 Mac with Parallels? ›
Parallels Desktop 18, hands on: Now you can run Windows 11 on M1 as well as Intel Macs. Version 18 of Parallels' virtualisation software makes it easier to deploy Windows 11 on the latest Macs.Is Windows 11 free with Parallels? ›
Parallels Desktop for Mac does not include Microsoft® Windows. A license for Parallels Desktop for Mac is the license key that allows you to activate only Parallels Desktop, the license key isn't supposed to activate Windows. You can purchase a Windows 11 license using the Parallels Desktop interface.Does UTM require jailbreak? ›
UTM is supported on iOS 11, 12, and 13 for non-jailbroken devices through sideloading. UTM requires a jailbreak to use on iOS 14.What programs dont work on M1 Mac? ›
For the time being, some crucial tools either won't run on new Macs or won't run properly. These include Docker, Android Studio, and Haskell. The list of tools that will run on Rosetta 2 but aren't optimized for the M1 is much more extensive and includes Atom, RStudio, PHPStorm, R, Flutter, VSCode, Golang, .
Is Parallels free for M1 Mac? Parallels Desktop 17 does offer a free 14-day, fully-featured trial. If you're using a newer Mac with M1, you won't need to pay for the Insider Preview of Windows 10 or 11 on ARM during the 14 days.Does ARM64 work on Mac? ›
On macOS, two architecture are supported: x86_64 is the architecture of Intel's 64-bit CPUs, sometimes also simply referred to as x64 . It is the architecture for all Intel Macs shipped between 2005 and 2021. arm64 is the architecture used by newer Macs built on Apple Silicon, shipped in late 2020 and beyond.Is macOS Monterey ARM64? ›
|Kernel type||Hybrid (XNU)|
|License||Proprietary software with open-source components and content licensed with APSL|
You can do this by typing “About This Mac” into Spotlight or by clicking the logo in the top-left of the Menu Bar. A popup will appear, giving you some basic information on your Mac, such as the serial number and macOS version. For our purposes, however, we're going to click the System Report button.Do I need a license for Windows 11 arm? ›
You need a Windows 11 ARM64 product key. Technically, there was nothing that prevented you from using any Windows 11 key to do this, as Windows product keys are not architecture-specific, so you can use the same key with x86 (RIP), x64, and ARM64 OSes.Does Windows 11 ARM have x64 emulation? ›
Code built as Arm64EC is interoperable with x64 code running under emulation within the same process. The Arm64EC code in the process runs with native performance, while any x64 code runs using emulation that comes built-in with Windows 11.Is UTM degree Recognised? ›
It is internationally recognised.Does Hyper V work on Mac M1? ›
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.What is the difference between UTM and UTM se? ›
UTM SE (Slow Edition) is a version of UTM that uses TCI and can run on the latest version of iOS on any device without tethering. The catch is that UTM SE can be 9-10x slower than regular UTM, so use regular UTM if you can!What version of ARM is M1? ›
CPU. The M1 has four high-performance "Firestorm" and four energy-efficient "Icestorm" cores, first seen on the A14 Bionic. It has a hybrid configuration similar to ARM DynamIQ and Intel's Lakefield, Alder Lake and Raptor Lake processors.
For content creation tasks, Intel showed the Core i7 to be about 1.12x faster than the M1 in performing a 4K AVC-to-HEVC/H.Is M1 better than M2? ›
With its powerful CPU, M2 Pro can compile code up to 25 percent faster than M1 Pro, and up to 2.5x faster than MacBook Pro with an Intel Core i9 processor.Can Windows X86 run on M1 Mac? ›
None of the M1 are suitable for X86 workloads. You will want an Intel Mac if performance emulating X86 well enough to run windows (or macOS) virtually is your deciding factor.Why ARM is faster than X86? ›
ARM chips, by design, are much more power-efficient than x86 CPUs. They're RISC processors, so they're simpler in design. Also, things like ARM's big. LITTLE configuration help battery life and overall efficiency greatly.How do I know if my device is ARM or ARM64? ›
To figure out if it's ARM or x86, you'll look at the Instruction Set section—again, you're just looking for the basic info here, like the letters “arm.” On my Pixel 2 XL (the above screenshots), for example, it's pretty clear that it's an ARM64 device.How to run Windows 10 on Mac M1 UTM? ›
- Using Virtual Machine. ...
- Download UTM. ...
- Open UTM. ...
- Open UTM. ...
- Download The Edition of Windows You Want to Use. ...
- Create a New Virtual Machine. ...
- Click on Virtualize. ...
- Select Windows.
QEMU 6.2 introduces full hypervisor support for M1 Macs.Is there a CPU with 128 cores? ›
AMD is to debut the Zen 4 architecture first on desktop with Ryzen 7000 Series CPUs launching September 27. Not soon after, the same architecture is put to work powering next-generation Epyc processors using Genoa and Bergamo technology featuring up to 128 cores and 256 threads, according to the latest in-depth leaks.How do I install Windows on a new M1 Mac? ›
The first thing you need to do is to download the Windows 10 ISO file from Microsoft's website. Once you have downloaded the ISO file, you need to open Bootcamp Assistant app. Follow the on-screen instructions to complete the installation process, and then you will be able to use Windows 10 on your Mac.How do I install Windows on parallel M1 Mac? ›
- Click on the link to visit Parallels Desktop's official website. ...
- Now, click on the Download Now button to start downloading the app.
- Locate the downloaded DMG file on your Mac and double-click on it to open it.
- Now, double-click on the Install Parallels Desktop button.
All of the best Parallels Desktop features were re-engineered for the Apple M1 chip, including: Choose to have Windows invisible while still using its applications in Coherence Mode, side-by-side with Mac apps.Is Windows 11 free on Parallels? ›
Parallels Desktop for Mac does not include Microsoft® Windows. A license for Parallels Desktop for Mac is the license key that allows you to activate only Parallels Desktop, the license key isn't supposed to activate Windows. You can purchase a Windows 11 license using the Parallels Desktop interface.Can Windows 11 ARM run x86 apps? ›
Windows 11 adds the ability to run unmodified x64 Windows apps on Arm devices! This ability to run x86 & x64 apps on Arm devices gives end-users confidence that the majority of their existing apps & tools will run well even on new Arm-powered devices.