This guide explains how to install and run a Windows 11 for ARM64 virtual machine with qemu-system-aarch64.
virtio-win driver ISO from the repository page: virtio-win. It will be used during setup to provide the storage and network drivers.qemu-efi-aarch64 or edk2-aarch64). This provides QEMU_EFI.fd.ar x qemu-efi-aarch64*.deb
tar xvf data.tar.xz
cp ./usr/share/qemu-efi-aarch64/QEMU_EFI.fd .
qemu-img create win11-arm64.img 100G
You should now have the following files in your working directory:
Win11_*.isovirtio-win-*.isoQEMU_EFI.fdwin11-arm64.imgqemu-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
Requires a Linux aarch64 host with KVM enabled. On x86_64 hosts, use Option A. From the Option A command, change:
-accel tcg,thread=multi -> -accel kvm-cpu max,pauth-impdef=on -> -cpu host
Everything else remains the same.regedit.HKEY_LOCAL_MACHINE\SYSTEM\Setup.Setup → New → Key → name it LabConfig.LabConfig, create the following DWORD (32-bit) values:
BypassSecureBootCheck = 1BypassCPUCheck = 1BypassRAMCheck = 1BypassStorageCheck = 1BypassTPMCheck = 1Close 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.
LabConfig and set the 5 DWORDs to 1) before clicking “I don’t have a product key”.
virtio-win ISO → viostor/w11/ARM64/ → load the driver.
OOBE\BYPASSNRO
E:\NetKVM), and install the driver.