How to run Windows 10 on the Apple M1
Last Update: Jun 7, 2024
I wrote a book! Check out A Quick Guide to Coding with AI.
Become a super programmer!
Learn how to use Generative AI coding tools as a force multiplier for your career.
In January I picked up an Apple M1 Mac Mini. I immediately put a bunch of miles on it. It does much of what I need it to do well. But the one thing it doesn’t do that I need it to: virtualization.
This stands to reason: The M1 is an ARM processor and nearly everything running on this machine uses Rosetta translation technology to translate x86_64 instructions to ARM. It’s so well designed and tightly integrated with the hardware that some x86 applications run faster on the M1 than they do on Intel Macs. It’s incredible. But it doesn’t support something as complex as an x86 virtual machine… yet.
But I set up a couple VMs on here, and I’ll show you how to do it, and what you need to know.
Step One: Parallels
I’m not a Parallels expert. In fact, I purchased it for the first time, installed it, then started up a live stream to try it out.
You can’t run the standard version of Parallels on the M1. You’ll need to download Parallels for Mac with Apple M1 Chip. This is a version specially built to work with Rosetta.
Ok cool, so Parallels runs on the M1, that means we can run any Virtual Machine now right?
No. Not exactly.
So, I wanted to run Windows on this thing. However, we have no option for Bootcamp, and I can’t download a x86_64 Windows 10 ISO and install it.
So what do we do?
Step Two: Get the Windows 10 for ARM Preview
The Windows 10 for ARM preview will run in Parallels. It’s a Windows Insider preview. If you’re not a Windows Insider, you can sign up here.
You can download and install it in a few clicks just like any version of Windows.
Step Three: Enjoy Windows 10 on the M1
This is a preview version of Windows 10 for ARM processors. Here are some things you need to know:
- It is not officially supported on the M1
- It cannot be activated (for now)
- It runs x86_64 apps under emulation (the reverse of Rosetta)
So it will run, but it’s not perfect. Let’s talk about how it went.
First Impressions
So in my live stream I installed Windows 10. It installed fairly quickly. I installed several x86 applications and set up my machine for some front end development. What I noticed:
- I can go full screen
- It runs fairly snappy
- It “feels” like any other version of Windows
- Can’t do much for memory
I then ran a Geekbench test on it. It was less than impressive.
Less than half on the Single-Core score and about 12% of the native Multi-Core score. Ouch.
Full scores:
There are several reasons for this. One being going through two translation layers. So running Geekbench “natively” on Big Sur isn’t even truly native, it’s running through the Rosetta system, but pretty fast.
In Windows 10, it’s a x86_64 app translated to ARM, going through Parallels back as x86_64 then translated again for native ARM. Yikes.
That being said, the machine didn’t feel all that slow. I should note you won’t be able to assign much memory to this.
This is because the M1 is limited, in my case I have 16G of memory, and about 10G is being used up before I even start the Windows machine. So, you can add virtual memory at your own peril.
Summary
This is how you can run Windows 10 on your new Apple M1. I haven’t spent a lot of time with it yet, but you can do basic “Windows stuff” on your M1 if you really need it. If there are a few applications you need to run, it can probably handle it. I don’t see a compelling reason to run Windows 10 this way as a full-time machine. You’re giving up memory and CPU power for it. You won’t be able to run games so don’t even try it.
But it’s nice to at least have this option available if you need it.
Have you tried this? Let me know how it goes!