Installing windows 11 on a virtual machine hosted by raspberry pi 5 16GB with a HAT M.2, then installing IIS and publishing a Power BI Third Party Embedded .NET MVC Application.
The action plan is here:
https://github.com/ricardokazuo/noteb...
Raspberry Pi 5 — Windows 11 ARM64 VM Setup Guide
---
System Overview
| Component | Details |
|---|---|
| Host Hardware | Raspberry Pi 5 (Cortex-A76, 16GB RAM) |
| Host OS | Ubuntu Server 24.04 (Noble) on SD card |
| Root Filesystem | Migrated to M.2 SSD via PCIe HAT (447GB WD Green) |
| Hypervisor | QEMU/KVM with ARM64 KVM acceleration |
| Guest OS | Windows 11 ARM64 25H2 |
| Display | ramfb (install) → virtio-gpu-pci (runtime) |
| Access | RDP on port 3389 via QEMU NAT |
| VM Memory | 12GB |
| VM vCPUs | 4 |
---
Phase 1 — Migrate Root Filesystem to M.2 SSD
1.1 Verify disk layout
1.2 Wipe and partition the SSD
1.3 Mount SSD and rsync root filesystem
1.4 Get the SSD UUID
1.5 Update fstab on the SSD
1.6 Update cmdline.txt on the SD card
1.7 Reboot and verify
---
Phase 2 — Install QEMU/KVM and Dependencies
2.1 Fix any held packages
2.2 Install QEMU and supporting packages
2.3 Verify KVM and add user to groups
---
Phase 3 — Prepare VM Files
3.1 Set up ISO directory on the SSD
3.2 Transfer Windows 11 ARM64 ISO
3.3 Download VirtIO drivers ISO
3.4 Copy UEFI firmware vars and create VM disk image
---
Phase 4 — Launch VM and Install Windows
4.1 Start QEMU directly
4.2 Connect via VNC (headless — no HDMI needed)
4.3 Windows installer — load VirtIO storage driver
4.4 Bypass TPM and Secure Boot check
4.5 Bypass Microsoft account requirement (Windows 11 25H2)
---
Phase 5 — Install VirtIO Drivers Inside Windows
5.1 Install all VirtIO drivers
5.2 Install VirtIO guest tools MSI
Phase 6 — Enable RDP and Switch to virtio-gpu
---
6.1 Enable Remote Desktop inside Windows
6.2 Restart QEMU with virtio-gpu-pci
6.3 Connect via RDP
---
Phase 7 — Create systemd Service for Auto-start
---
Final Architecture
SD Card (boot only)
└── /boot/firmware → hands off root to SSD
M.2 SSD (root filesystem + VM files)
├── Ubuntu Server 24.04 (/)
└── /mnt/isos/
├── win11arm.qcow2 (80GB VM disk)
├── win11_VARS.fd (UEFI boot entries)
├── virtio-win.iso (VirtIO drivers)
└── Win11_25H2_*.iso (Windows installer)
QEMU/KVM (systemd service: win11-vm.service)
└── Windows 11 ARM64 25H2 (12GB RAM, 4 vCPUs)
├── Port 3389 → RDP access
├── Port 80 → HTTP / IIS
└── Port 5900 → VNC emergency console