Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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:

...

...

  • replace --accel tcg with --accel kvm (or --accel hvf on MacOS)remove virtualization=true (won't be available for your cpu/kvm)

  • replace cpu with -cpu=host

...