Zum Inhalt

Windows 11 in VM installieren

📅 Erstellt: 13.11.2025 🔄 Aktualisiert: 23.08.2026

Windows 11 als Guest in einer Linux VM installieren an einem Beispiel von CachyOS - Arch Linux

Quelle(n) u.a.
- YouTube - https://www.youtube.com/watch?v=WmFpwpW6Xko
- Copilot (MVP des Jahrzehnts ^^)

Ablauf

  1. swtpm installieren:
    # pacman -S swtpm
  2. QEMM/KVM inkl. Virtuelle Maschinenverwaltung installieren:
    $ paru -S libvirt virt-manager qemu-full ovmf
  3. Den virtuellen Dienst starten:
    # systemctl start libvirtd
  4. Die Virtuelle Maschinenverwaltung aufrufen, QEMM/KVM verbinden, Rechtsclick auf QEMM/KVM, Neu erstellt eine neue VM
    e533e1f70e278354bb70db7d05bd7a9e.png
  5. CPUs einstellen
    6ba84e32d9219556d125b99299769c7a.png
  6. Auswahl Lokales Installationsmedium, Win11 ISO auswählen, sollte automatisch erkannt werden
  7. Speicher 16384 MB (bei 32 GB Host RAM), 12 CPUs (bei 16 Host Threads), 80 GiB HDD
  8. Maschine benennen z.B. Windows 11 Pro, Netzwerk auswählen Virtuelles Netzwerk 'default': NAT, Konfiguration bearbeiten vor der Installation
    2bedf4c3dfcc37ebcced44b0e3cd1d04.png
  9. Windows Laufwerk (Festplatte) als VirtIO konfigurieren, SATA CDROM 1 mit Windows 11 ISO, SATA CDROM 2 mit den heruntergeladenen
  10. Bootreihenfolge Windows ISO -> Festplatte -> Tools ISO
    752a33edd1d8fe92628addf3de7d52ef.png
  11. TPM einstellen
    e1e05f6ddbdc019504f672ce29e35e9f.png
  12. Nicht erwähntes kann "default" bleiben, Installation starten
  13. Dem Installationsablauf folgen
    7483c06f0b6d759e39e420f314b488c5.png
  14. Treiber von der CD Virtio-Win installieren
    1a4c08f7bf7635e67350171d0fa054d2.png
    853ca83d835be9c22eae4376084ff9dd.png
    91a9b0de7b19481a8c9c59398b43f7bf.png
  15. Laufwerk dann auswählen und installieren
    a00a4b3c602d8380f583ae775c42b4e3.png
  16. Sollte es einen Netzwerkfehler geben "nicht verbunden" und Treiber installieren Aufforderung, dann schaltet man kurzzeitig mal UFW ab:
    # ufw disable
    Das ist nur ein "Dirty Fix", um den richtigen kümmern wir uns später
  17. Windows 11 soweit weiterinstallieren, Konto erstellen oder in Konto einloggen (ich habe mir mal eines erstellt, für, etwaige VM Nutzung vielleicht sinnvoll)
  18. Im fertigen Windows erstmal alle Updates durchlaufen lassen
  19. SPICE Treiberpaket installieren - Link
    c9b4ef1eff483969cc5041ba347c0486.png
  20. Prüfen, ob alle Geräte soweit in Ordnung sind und funktionieren, z.B. im Gerätemanager:
    e3fa5eebc377e9ea1f2a154e3f5db655.png
  21. Windows Partition einbinden:
    5f842fe18ce740d291503ab0a9af7357.png

Dirty Fix nun clean ausführen

Aus Punkt 16) nun ordentlich konfigurieren für IP Forwarding, sodass ein Guest nun auch mit aktiver UFW Firewall das Internet nutzen darf/kann.

Quelle: Copilot :-)

Genau, deine Logs zeigen wieder das gleiche Muster: Pakete vom Gast (192.168.122.x über virbr0) werden von UFW beim Forwarding nach außen über enp4s0 blockiert.
Mit deaktiviertem UFW funktioniert NAT, mit aktiviertem nicht → Ursache ist die fehlende Freigabe von Forwarding/NAT in UFW.


Dauerhafte Lösung für UFW + libvirt NAT

1. IP‑Forwarding aktivieren

echo "net.ipv4.ip_forward=1" | sudo tee /etc/sysctl.d/99-forward.conf
sudo sysctl --system

2. UFW Forward‑Policy anpassen

In /etc/default/ufw:

DEFAULT_FORWARD_POLICY="ACCEPT"

3. NAT/MASQUERADE in UFW eintragen

In /etc/ufw/before.rules vor dem finalen COMMIT:

*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 192.168.122.0/24 -o enp4s0 -j MASQUERADE
COMMIT

192.168.122.0/24 ist dein libvirt‑Subnetz, enp4s0 dein Host‑Interface ins Internet.

4. UFW neu laden

sudo ufw disable
sudo ufw enable

5. Optional restriktive Route‑Regeln

Falls du nicht global alles forwarden willst:

sudo ufw route allow in on virbr0 out on enp4s0 from 192.168.122.0/24 to any


Kontrolle

  • NAT sichtbar?
    sudo iptables -t nat -L -n -v | grep MASQUERADE
    
  • Forwarding aktiv?
    sudo iptables -L FORWARD -n -v
    
  • Im Gast:
    ping 192.168.122.1
    ping 8.8.8.8
    nslookup example.com
    

👉 Damit erlaubst du UFW, die libvirt‑NAT‑Bridge korrekt weiterzuleiten. Ohne diese Anpassung blockt UFW standardmäßig alles Forwarding.

Willst du, dass ich dir eine fertige Patch‑Datei für /etc/ufw/before.rules schreibe, die du nur einfügen musst?