virtio-win

Windows 11 VM installation on ARM64 with qemu

This guide explains how to install and run a Windows 11 for ARM64 virtual machine with qemu-system-aarch64.

Prerequisites

Windows ISO (ARM64)

Virtio drivers

EFI

ar x qemu-efi-aarch64*.deb
tar xvf data.tar.xz
cp ./usr/share/qemu-efi-aarch64/QEMU_EFI.fd .

Create a virtual disk

qemu-img create win11-arm64.img 100G

You should now have the following files in your working directory:

Run QEMU

Option A: Software emulation (TCG)

qemu-system-aarch64 \
  -M virt -m 8G -cpu max,pauth-impdef=on -smp 8 \
  -bios ./QEMU_EFI.fd\
  -accel tcg,thread=multi\
  -device ramfb \
  -device qemu-xhci -device usb-kbd -device usb-tablet \
  -nic user,model=virtio-net-pci \
  -device usb-storage,drive=install \
  -drive if=none,id=install,format=raw,media=cdrom,file=./Win11_*.iso \
  -device usb-storage,drive=virtio-drivers \
  -drive if=none,id=virtio-drivers,format=raw,media=cdrom,file=./virtio-win-*.iso \
  -drive if=virtio,id=system,format=raw,file=./win11-arm64.img  

Option B: Hardware acceleration (KVM, aarch64 host)

Requires a Linux aarch64 host with KVM enabled. On x86_64 hosts, use Option A. From the Option A command, change:

Windows setup walkthrough

  1. Boot from the Windows ISO
    • When prompted, press any key to boot from the installer.
  2. Start installation
    • Choose language, click Install. When asked for a key, click “I don’t have a product key”. Windows setup: language and Install
  3. Bypass Windows 11 checks (if shown)
    • If you see “This PC can’t run Windows 11”, press Shift+F10 → run regedit.
    • Navigate to HKEY_LOCAL_MACHINE\SYSTEM\Setup.
    • Right-click Setup → New → Key → name it LabConfig.
    • In LabConfig, create the following DWORD (32-bit) values:
      • Must:
        • BypassSecureBootCheck = 1
      • Can be done for convenience (only if you still see the error):
        • BypassCPUCheck = 1
        • BypassRAMCheck = 1
        • BypassStorageCheck = 1
        • BypassTPMCheck = 1
    • Close Registry Editor and the command prompt, go back to the previous page, and click “I don’t have a product key” again. Installation should proceed.

    • Important: Some Windows 11 images do not show a Back button. If so, complete this bypass (create LabConfig and set the 5 DWORDs to 1) before clicking “I don’t have a product key”.

Compatibility error screen Registry Editor: LabConfig with bypass keys

  1. Storage driver and disk selection
    • Choose “Custom Install”.
    • Click “Load driver” → browse the virtio-win ISO → viostor/w11/ARM64/ → load the driver.
    • Create a partition on the virtio disk and click Next.

    Load driver → viostor/w11/ARM64 Disk selection with virtio disk visible

  2. Installation progress
    • The installer copies files and reboots several times.

    Installing Windows: progress screen

  3. Continue without an internet connection
    • If the OOBE insists on a network connection, press Shift+F10 and run:
OOBE\BYPASSNRO
  1. First boot to the Windows desktop
    • After the reboot, choose “I don’t have internet” → “Continue with limited setup”.
    • Create a local user and finish the OOBE. You should arrive at the Windows desktop.
  2. Get a network connection
    • Open Device Manager → expand “Other devices” → right‑click “Ethernet Controller” → Update driver.
    • Browse to the virtio ISO NetKVM folder (e.g., E:\NetKVM), and install the driver.
    • After the driver installs, the adapter should obtain network connectivity.