-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
Description
Self-Hosted GitHub Actions Windows Runner Setup
Current Status
Progress
-
✅ Step 1: KVM/Libvirt infrastructure installed and verified
- QEMU v10.1.0, Libvirt v11.6.0
- VT-x virtualization enabled (16 cores)
- libvirtd.service running with dnsmasq DHCP active
-
✅ Step 2: Windows 11 25H2 ISO downloaded and verified
- ISO Location: ~/VMs/iso/Windows_11_verified.iso (7.3GB)
- File verified: Bootable ISO 9660 filesystem
- ❌ Boot fails: Error 0xc0000225 across all VM configurations
-
✅ Step 3: Virtual network bridge created
- Bridge name: virbr0
- Host IP: 192.168.122.1
- Network: NAT with DHCP (192.168.122.2-254)
- Interface: enp0s31f6
-
🔄 Step 4: Windows VM configuration - TESTING
- Attempted configs: BIOS+IDE, BIOS+SATA, UEFI+q35, UEFI+TPM, raw disk passthrough
- Issue: Windows 11 25H2 won't boot in QEMU/KVM (hypervisor incompatibility)
- Solution: Switching to Windows 10 22H2 (more compatible boot structure)
- USB /dev/sdb confirmed as bootable Windows media
- Next: Create Windows 10 bootable USB, test if it boots
-
⏳ Step 5+: Pending successful Windows boot
Troubleshooting Summary (Windows 11)
Tested 10+ different VM configurations:
- Machine types: pc (BIOS), q35 (UEFI)
- Disk buses: IDE, SATA, virtio
- Boot sources: ISO (CDROM), USB passthrough, raw disk passthrough
- Graphics: VGA, QXL, SPICE, VNC
- Features: TPM 2.0, ACPI, APIC
All failed with same error code (0xc0000225). Ubuntu Server ISO boots successfully on same VM config, confirming hypervisor is correct.
Current Plan
- Windows 11 25H2 appears incompatible with QEMU/KVM setup
- Creating Windows 10 22H2 bootable USB as fallback
- If Windows 10 boots: Continue setup with Windows 10 instead
- If Windows 10 fails: Investigate deeper QEMU compatibility issues
Next Steps
- Create Windows 10 22H2 USB via Media Creation Tool
- Plug USB into Ubuntu server (/dev/sdc expected)
- Boot VM from USB with raw disk passthrough
- Test if Windows 10 installer loads
- If successful: Complete Windows 10 installation and runner setup
- If unsuccessful: Evaluate alternative hypervisors or approaches
VM Management Commands
virsh list
virsh dominfo github-runner-windows
virsh vncdisplay github-runner-windows
virsh destroy github-runner-windows
virsh undefine github-runner-windows --nvramNotes
- Ubuntu home server has limited USB port availability (headless system)
- Media Creation Tool USB approach most practical
- Windows 11 requirement may not be feasible; Windows 10 acceptable alternative
- Runner functionality same in both Windows versions