[Windows 10, 8, 7, XP etc.] jenneh:
Okay so here is an update! Finally, finally, finally! After 2 years I was able to install windows 11 arm, fresh from the iso in qemu (using system-aarch64). The following text is beneficial for those of us unfortunate enough to not have an arm pc or server, this is for those of us on x86 or 64. (this will be translated in a future thread for android users)

View attachment 6113065

WSL Installation steps

Required Files:

Windows 11 Arm Setup ISO – When it completes, rename the .ISO file to "11pro.iso":

Summary for Windows 11, version 24H2 (26100.560) arm64, English (United States), Windows Pro

Summary for Windows 11, version 24H2 (26100.560) arm64, English (United States), Windows Pro on UUP dump. UUP dump lets you download Unified Update Platform files, like Windows Insider updates, directly from Windows Update.

uupdump.net

EFI and Drivers:

project.zip

drive.google.com

Extract and put all of your files into a new folder called “project”.

WSL update (Direct Download Link) - immediately install after download:

https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi

Vcxsrv (Direct Download Link) - GUI for WSL:

https://sourceforge.net/projects/vcxsrv/files/latest/download

Change X Server's desktop shortcut Target property to:

"C:\Program Files\VcXsrv\vcxsrv.exe" :0 -ac -terminate -lesspointer -multiwindow -clipboard -wgl -dpi auto

Then run the shortcut.

This very first step only needs to be ran if you do not already have WSL installed.

Run this command in PowerShell as admin, and when it is complete, reset your computer:

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux,VirtualMachinePlatform

Run this command in PowerShell as admin to install Debian inside of WSL and upgrade it:

wsl --set-default-version 2; wsl --install -d Debian;

Set your username and password, minimize the Debian tab, then in your main Windows environment, copy and paste your project folder into this location to add it to your Debian environment:

\\wsl.localhost\Debian\home\x0110\

replace x0110 with your username!

Then paste all this code at once into the Debian environment to update, install the qemu packages, and set privledges on the project files:

sudo apt update && \

sudo apt upgrade -y && \

sudo apt-get install ovmf seabios qemu-system-aarch64 qemu-utils terminator -y && \

cd ~/project && \

qemu-img create -f vhdx win11arm.vhdx 100G && \

chmod 755 ./QEMU_EFI.img ./11pro.iso ./win11arm.vhdx ./drivers.vhdx

To run setup for the first time, paste all this code at once (you may edit the values like the ram -m):

GDK_BACKEND=x11 qemu-system-aarch64 \

-m 32768 \

-smp 8 \

-device VGA \

-M virt \

-cpu max \

-display gtk \

-monitor stdio \

-device nec-usb-xhci \

-device usb-kbd \

-device usb-tablet \

-usb \

-bios ./QEMU_EFI.img \

-drive if=none,id=cdrom,file=./11pro.iso,media=cdrom \

-device usb-storage,drive=cdrom \

-drive if=none,id=system,format=vhdx,file=./win11arm.vhdx \

-device virtio-blk,drive=system \

-drive if=none,id=drivers,readonly=on,file=./drivers.vhdx \

-device usb-storage,drive=drivers \

-boot d \

-accel tcg,thread=multi

When setup first loads, press shift + f10 and type:

C:

tpm.bat

At the select disk part, hit browse, C:\ then install the driver.

Select Disk 1, then next.

Let the installer run, it will take a really long time at 82 percent:

After it reaches 100 percent, it will reboot and begin another installer starting at 0 percent.

This installer too will hang for a while at 42 percent:

Then installer will reboot for the second time at 62 percent. It is at this point the installer will get stuck on this screen (You will notice that the circle does not pop up like normal and start whirling):

Close qemu, then in PowerShell, press the up arrow key and enter to start the vm again.

Do not press any keys (we don't want to boot into the iso), just let the vm load into the system.

When it finally makes it to this screen asking if this is the right country or region:

Press shift f10 and run:

oobe\bypassnro

When the vm resets, and the arm logo comes up, close Qemu, and in PowerShell, paste all this code at once:

GDK_BACKEND=x11 qemu-system-aarch64 \

-m 32768 \

-smp 8 \

-device VGA \

-M virt \

-cpu max \

-monitor stdio \

-device nec-usb-xhci \

-device usb-kbd \

-device usb-tablet \

-usb \

-bios ./QEMU_EFI.img \

-drive if=none,id=cdrom,file=./virtio-win.iso,media=cdrom \

-device usb-storage,drive=cdrom \

-drive if=none,id=system,format=vhdx,file=./win11arm.vhdx \

-device virtio-blk,drive=system \

-accel tcg,thread=multi \

-display gtks

When you get to the internet part select "I don't have internet":

To install the drivers after setup has completed, open file explorer.

Go to CD Drive E:\NetKVM\w11\ARM64

Right click on netkvm and wait until the menu pops up, then select install

Once the setup completes you will have a fully functional Windows 11 Pro Arm vm with working internet!

NUANCES

Code and File nuances for those interested:

FILES:

Original sources for files:

Network drivers iso - shorten the iso’s name to “virtio-win.iso” (Direct Download Link):

https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win.iso

QEMU EFI and the drivers.vhdx files (don’t need VARS) - the download takes a minute to popup (no rename needed):

Microsoft OneDrive

onedrive.live.com

The drivers.vhdx file was modified to add a file called tpm.bat to bypass reqs to install windows

Then open diskmgmt.msc and browse to your project folder and open drivers.vhdx.

In file explorer, open the mounted drivers.vhdx and make a new file called "tpm.bat". Paste this code into the file:

reg add "HKLM\SYSTEM\Setup\LabConfig" /v "BypassTPMCheck" /t REG_DWORD /d 1

reg add "HKLM\SYSTEM\Setup\LabConfig" /v "BypassRAMCheck" /t REG_DWORD /d 1

reg add "HKLM\SYSTEM\Setup\LabConfig" /v "BypassSecureBootCheck" /t REG_DWORD /d 1

reg add "HKLM\SYSTEM\Setup\LabConfig" /v "BypassCPUCheck" /t REG_DWORD /d 1

reg add "HKLM\SYSTEM\Setup\LabConfig" /v "BypassStorageCheck" /t REG_DWORD /d 1

IN WSL:

GDK_BACKEND=x11 fixes the stupid gigantic black cursor issue native in wsl2 by replacing the big black cursor with a normal one.

Using -device usb-tablet instead of -device usb-mouse fixes the syncing issue, but unfortunately there will be tracers. If anyone can improve this please leave a comment!