Windows 10 Arm: Qcow2
Guide: Windows 10 on ARM using QEMU and QCOW2
Introduction
Windows 10 on ARM is a version of Windows 10 that runs on devices with ARM-based processors, such as the Qualcomm Snapdragon 835. While it's not as widely used as the x86 version, it offers an interesting alternative for devices that require a lightweight and power-efficient operating system. QEMU (Quick Emulator) is an open-source emulator that can run Windows 10 on ARM on a variety of host platforms. QCOW2 (QEMU Copy On Write) is a virtual disk image format used by QEMU.
In this guide, we'll walk you through the process of creating a Windows 10 on ARM virtual machine using QEMU and QCOW2.
Prerequisites
- A host machine with a compatible processor (x86 or ARM) and a supported operating system (e.g., Linux, Windows, or macOS).
- QEMU installed on your host machine. You can download it from the official QEMU website.
- A Windows 10 on ARM ISO file. You can obtain this from Microsoft or other sources.
- A QCOW2 compatible disk image tool, such as
qemu-img.
Step 1: Prepare the Windows 10 on ARM ISO file
- Download the Windows 10 on ARM ISO file and verify its integrity using the provided SHA-256 hash.
- Mount the ISO file on your host machine or extract its contents to a directory.
Step 2: Create a QCOW2 disk image
- Open a terminal or command prompt and navigate to the directory where you want to create the disk image.
- Use
qemu-imgto create a new QCOW2 disk image:
qemu-img create -f qcow2 windows10_arm.qcow2 64G
This command creates a 64 GB QCOW2 disk image named windows10_arm.qcow2.
Step 3: Install Windows 10 on ARM
- Use QEMU to boot the Windows 10 on ARM ISO file and start the installation process:
qemu-system-arm -M virt -cpu cortex-a53 -m 2048 -smp 2 -vnc :0 -device virtio-blk-device,drive=hd0 -drive id=hd0,file=windows10_arm.qcow2,format=qcow2 -cdrom <path_to_iso_file>
Replace <path_to_iso_file> with the actual path to your Windows 10 on ARM ISO file.
- Follow the installation prompts to install Windows 10 on ARM on the QCOW2 disk image.
Step 4: Configure the virtual machine
- Once the installation is complete, you can configure the virtual machine to use the QCOW2 disk image:
qemu-system-arm -M virt -cpu cortex-a53 -m 2048 -smp 2 -vnc :0 -device virtio-blk-device,drive=hd0 -drive id=hd0,file=windows10_arm.qcow2,format=qcow2
This command starts the virtual machine with the QCOW2 disk image.
Tips and Variations
- You can improve performance by adding more CPU cores, increasing the memory size, or using a different disk image format.
- To enable networking, add the
-netoption followed by the network backend (e.g.,-netdev user,id=net0 -device virtio-net-device,netdev=net0). - You can also use other QEMU options to customize the virtual machine, such as adding a graphics card or a sound device.
Troubleshooting
- If you encounter issues during installation or running the virtual machine, check the QEMU console output or the Windows 10 on ARM event logs for errors.
- Make sure you have the latest version of QEMU and that your host machine meets the system requirements.
Conclusion
In this guide, we've shown you how to create a Windows 10 on ARM virtual machine using QEMU and QCOW2. With these steps, you should be able to run Windows 10 on ARM on a variety of host platforms. Keep in mind that performance may vary depending on your host machine and the specific configuration you choose. Happy experimenting!
Running Windows 10 on ARM hardware—like the Apple M-series chips or Ampere Altra servers—requires a specific disk format for virtualization. The QCOW2 (QEMU Copy-On-Write) format is the standard for Linux-based hypervisors like QEMU and KVM because it only uses disk space as needed. 🛠️ How to Create a Windows 10 ARM QCOW2 Image
To get a functional Windows 10 ARM environment, you typically convert a Microsoft-provided VHDX (Virtual Hard Disk) into a QCOW2 file or create a fresh one from an ISO. 1. Convert VHDX to QCOW2 windows 10 arm qcow2
If you have downloaded a Windows 10 ARM "Insider Preview" VHDX from the Microsoft Windows Insider Program, use the qemu-img tool to convert it:
qemu-img convert -f vhdx -O qcow2 windows10arm.vhdx windows10arm.qcow2 Use code with caution. Copied to clipboard 2. Create a Blank QCOW2 Image
If you are installing from an ARM64 ISO (often built using tools like UUP dump), you must first create an empty virtual disk: qemu-img create -f qcow2 win10_arm_disk.qcow2 64G Use code with caution. Copied to clipboard 🚀 Running the VM with QEMU
Once your QCOW2 file is ready, you can boot it using the qemu-system-aarch64 emulator. Essential Components
UEFI Firmware: You need QEMU_EFI.fd to handle the ARM boot process.
VirtIO Drivers: Windows does not natively support QEMU’s virtual hardware; you must load the VirtIO-win drivers during or after installation. Command Line Example
A basic command to boot your new QCOW2 image looks like this:
qemu-system-aarch64 \ -M virt \ -cpu max \ -accel hvf \ -m 4G \ -bios QEMU_EFI.fd \ -drive file=win10_arm_disk.qcow2,if=virtio \ -device virtio-gpu-pci \ -nic user,model=virtio-net-pci Use code with caution. Copied to clipboard
(Note: Use -accel hvf for macOS/M1/M2 or -accel kvm for Linux ARM servers.) 💡 Key Tips for Success
Performance: Always use a virtio interface for your disk (if=virtio) to ensure the fastest read/write speeds.
Network Fix: If the internet isn't working, you likely need to install the NetKVM driver from the VirtIO ISO.
Graphical Interface: On macOS, using UTM provides a user-friendly GUI that handles these QCOW2 conversions and configurations automatically.
Guide to Windows 10 on ARM Virtualization using QCOW2 Windows 10 on ARM is a specialized version of the OS designed to run on power-efficient ARM64 processors. For developers and enthusiasts, running this in a virtual machine (VM) typically involves the QCOW2 (QEMU Copy-On-Write) disk format, which is the standard for the QEMU and KVM hypervisors. 1. Understanding the Licensing & ISO Dilemma
Unlike standard x86 Windows, Microsoft does not provide a direct retail ISO for Windows 10 on ARM.
Official Channels: You can sometimes find VHDX (not QCOW2) images via the Windows Insider Preview program, though these have largely transitioned to Windows 11.
Unofficial Methods: Many users use UUP dump to generate an ISO by downloading files directly from Microsoft’s update servers.
Legacy Support: Windows 10 on ARM is nearing its end-of-support in October 2025, and it lacks the robust x64 application emulation found in Windows 11. 2. Creating a QCOW2 Image Guide: Windows 10 on ARM using QEMU and
To run Windows 10 ARM on a Linux host (or Windows via WSL2), you must first create the virtual disk.
Command: Use the qemu-img tool to create a dynamically expanding disk: qemu-img create -f qcow2 win10_arm.qcow2 64G Use code with caution. Copied to clipboard
Optimization: Experts suggest a cluster size of 2 MB for better performance during I/O operations. 3. Essential Requirements for Virtualization
Virtualizing ARM64 requires specific firmware and drivers to function correctly:
7. Use Cases (Where This Makes Sense)
| Use Case | Viable? | |----------|---------| | Testing ARM64 Windows apps on ARM server | ✅ Yes | | Education/demonstration of Windows on ARM | ✅ Yes (with ISO) | | Production desktop replacement | ❌ No (lack of drivers, no license) | | CI/CD pipelines for ARM64 Windows builds | ⚠️ Possible with custom drivers | | Running x86-only legacy software | ❌ Poor performance |
Bottom line
Using qcow2 with Windows 10 ARM combines the flexibility of snapshots and space-efficient images with the realities of ARM-specific driver and emulation constraints. It’s ideal for experimentation, testing, and iterative development—just be prepared to tune images, drivers, and host acceleration for acceptable performance.
Windows 10 on ARM has become a go-to solution for users wanting to run Windows on Apple Silicon (M1/M2/M3) or Linux-based ARM servers. Using a QCOW2 image is the most efficient way to get these virtual machines up and running in environments like QEMU, UTM, or Proxmox.
Here is everything you need to know about Windows 10 ARM QCOW2 images. What is a QCOW2 Image?
QCOW2 stands for "QEMU Copy On Write version 2." It is the standard storage format for QEMU and KVM virtual disks.
Thin Provisioning: The file only takes up as much space as the data stored inside.
Snapshots: It supports multiple VM states within a single file.
Compression: It allows for smaller file sizes compared to RAW images. Why Use Windows 10 ARM?
While Windows 11 ARM is the current focus for Microsoft, Windows 10 ARM remains relevant for specific use cases:
Legacy Compatibility: Some older ARM-based applications run more predictably on Windows 10.
Lower Overhead: It can sometimes feel snappier on lower-resource virtual machines.
Development: Testing software across different OS versions is essential for developers. How to Get a Windows 10 ARM QCOW2
Microsoft does not provide a direct QCOW2 download. Instead, they offer VHDX files through the Windows Insider program. You must convert these to use them in QEMU-based environments. 1. Download the VHDX A host machine with a compatible processor (x86
You can typically find the "Windows 10 on ARM Insider Preview" on the official Microsoft Windows Insider website. You will need a Microsoft account registered with the Insider program. 2. Convert VHDX to QCOW2
Once you have the VHDX file, use the qemu-img tool to convert it. Run this command in your terminal:
qemu-img convert -f vhdx -O qcow2 Windows10_ARM.vhdx Windows10_ARM.qcow2 Optimized Settings for ARM Virtualization
To get the best performance out of your Windows 10 ARM QCOW2, keep these tips in mind:
CPU Passthrough: Use -cpu host in QEMU to ensure the guest OS uses the physical ARM cores directly.
VirtIO Drivers: Windows doesn't include VirtIO drivers by default. Download the "virtio-win" ISO to enable high-speed networking and disk I/O.
RAM Allocation: Give the VM at least 4GB of RAM; 8GB is the "sweet spot" for a smooth UI experience.
Display: Use the virtio-gpu or ramfb video device for better resolution support. Common Use Cases
Apple Silicon Macs: Using UTM (which uses QEMU under the hood) to run Windows 10 alongside macOS.
Raspberry Pi 4/5: Running a lightweight (though experimental) Windows environment.
Cloud ARM Servers: Deploying Windows desktops on Ampere-based instances in AWS or Oracle Cloud.
🚀 Pro Tip: Always remember to enable UEFI (via OVMF) in your virtual machine settings, as Windows ARM will not boot with a traditional BIOS.
If you'd like to dive deeper into the QEMU command-line arguments or need a guide on installing VirtIO drivers during setup, let me know!
Enable Write-Back Caching
In UTM, under “Drives” → “Advanced”, set Cache to Writeback. This improves write performance at the cost of a tiny risk of data loss during a host crash.
What is a QCOW2 File?
Before diving into the Windows aspect, it is important to understand the vessel. QCOW2 is the primary disk image format used by QEMU (Quick Emulator). Unlike a raw disk image, which allocates the full size of the disk immediately (e.g., a 50GB file for a 50GB disk), QCOW2 is sparse. It only occupies space as data is written.
Key benefits of QCOW2 include:
- Snapshot Support: You can save the state of the virtual machine at any point and revert to it instantly. This is invaluable when testing unstable software or drivers.
- Compression: QCOW2 supports zlib compression, reducing the physical footprint of the image on your host drive.
- Encryption: Built-in support for encrypting the virtual disk.
Step 2: Convert the VHDX to qcow2 (if necessary)
Some guides use the VHDX directly, but qcow2 offers better performance with QEMU. Install QEMU via Homebrew:
brew install qemu
Then convert:
qemu-img convert -f vhdx -O qcow2 Windows10_ARM.vhdx Windows10_ARM.qcow2
