...
Prerequisites
Windows ISO
Microsoft does not distribute official ISO for windows-arm64.
UUPDump website allows you to build an iso from windows update servers. Pick most recent version of windows 11 (avoid “Cumulative update”). Select “Windows pro”. https://uupdump.net/known.php?q=22h2+arm64
Then you can download the iso using a script shell. Some dependencies are needed, and the tool will guide you to report what is missing.
You should obtain a file named like “XXXXX.X_PROFESSIONAL_ARM64_EN-US.ISO”.
In our example, latest version is 22621.1.
Alternatively, you can use a link from this page (massgrave is an open source activator for Windowshttps://www.reddit.com/r/Piracy/comments/16axuvb/how_does_massgrave_work/ , and they host isos too): https://massgrave.dev/windows_arm_links.html www.microsoft.com/en-us/software-download/windows11arm64
If you only want to boot the windows kernel and a limited user-space, you can use Microsoft Validation OS instead (see instructions here).
Virtio drivers
Virtio windows drivers (https://github.com/virtio-win/virtio-win-pkg-scripts/blob/master/README.md) are needed to make your disk recognized by windows. Pick latest iso from link above.
In our example, latest version is 0.1.229266.
EFI
Download latest EFI from https://packages.debian.org/sid/qemu-efi-aarch64 . This will be used to boot windows image. Download package from “all” link, and extract it using:
...
You should now have those files available in current folder:
22621.1Win11_PROFESSIONAL24H2_ARM64EnglishInternational_EN-USArm64.ISOiso
virtio-win-0.1.229266.iso
QEMU_EFI.fd
win11-arm64.img
...
Code Block |
---|
qemu-system-aarch64 \ -M virt,virtualization=true -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=./22621.1Win11_PROFESSIONAL24H2_ARM64EnglishInternational_EN-USArm64.ISOiso \ -device usb-storage,drive=virtio-drivers \ -drive if=none,id=virtio-drivers,format=raw,media=cdrom,file=./virtio-win-0.1.229266.iso \ -drive if=virtio,id=system,format=raw,file=./win11-arm64.img |
Notes:
...
--accel tcg,thread=multi is to speed up emulation
devices are added for graphics output (ramfb), keyboard/mouse (usb*) and network (-nic)
pauth-impdef=on speeds up pointer authentication https://www.qemu.org/docs/master/system/arm/cpu-features.html#tcg-vcpu-features
...
replace
--accel tcg
with--accel kvm
(or--accel hvf
on MacOS)removevirtualization=true
(won't be available for your cpu/kvm)replace cpu with
-cpu=host
...