Diskussions- und Newsboard der Linux Interessen Gruppe Suletuxe
allgemeine Kategorie => Installation & Einrichtung => Thema von: Andreas am 07. März 2024, 17:57:01

Titel: qemu und Windows10 - Netzwerkprobleme
Beitrag von: Andreas am 07. März 2024, 17:57:01

Hi Sebastian,
ich spreche Dich frecherweise direkt an weil ich annehme, dass hier sowieso kein anderer eine Antwort wüsste...

Zur Sache:
Ich habe eine VM mittels qemu mit Win10 als Gast eingerichtet. Alles was ich getan habe, habe ich auf der Konsole eingerichtet - keine "grafische Verwaltung" für die Maschine und die Container. Das OS selbst läuft auch - aber ich bekomme die Netzwerkkarte unter Windows nicht eingerichtet. Ohne spezielle Gastsoftware oder mit (wirtio) - das Ergebnis ist in beiden Fällen das gleiche. Es wird eine Netzwerkkarte gefunden, Treiber werden dazu eingerichtet, und dann hat sie dieses liebliche gelbe Ausrufezeichen und geht nicht. Hast Du bei deiner Einrichtung auch sowas gehabt? Ich komme hier nicht weiter...

LG
Andreas

Titel: Re:qemu und Windows10 - Netzwerkprobleme
Beitrag von: Sebastian am 09. März 2024, 13:28:05

Hallo Andreas,

Mit qemu ohne grafische Oberfläche habe ich leider noch kaum Erfahrung, da ich mich damit noch nicht befassen wollte. Da ich schnell gemerkt habe das ein qemu Befehl schnell mal sehr lang werden kann, wenn man anfängt die genaue PC-Hardware zu beschreiben, die Emuliert werden soll.

Deswegen verwende ich als GUI den Virtmanager der wiederum libvirt als API verwendet, um die Befehle für qemu zusammenzuzimmern. libvirt ist dazwischen, weil Virtmnanger und libvirt noch mit anderen Emulatoren als mit qemu als Hypervisor arbeiten können.

Das Einzige, was mir dazu vielleicht einfällt, woran das liegen könnte. Ist vielleicht das du vergessen haben könntest die Netzwerkkarte mit einer Netzwerkbrücke zu verbinden, damit diese auch einen IP-Bereich zugewiesen bekommt.

Das ist nämlich das, was der Virtmanager als default macht, wenn eine neue VM eingerichtet wird. Frag mich aber jetzt nicht nach den qemu Befehlen dazu.

In dem Screenshot hier erstellt wird eine Netzwerkbringe vom Virtmananger einmalig für die VMs erstellt.

Titel: Re:qemu und Windows10 - Netzwerkprobleme
Beitrag von: Sebastian am 09. März 2024, 13:29:28

Und hier wird die Netzwerkbrücke mit der Netzwerkkarte der VM verbunden.

LG
Sebastian

Titel: Re:qemu und Windows10 - Netzwerkprobleme
Beitrag von: Sebastian am 09. März 2024, 13:47:53

Ansonsten was ich so im Internet so finde, meinen die meisten Seiten das die Ursache für solch ein Problem ein Konflikt mit einem anderen Netzwerk Adapter sein könnten. Aber meistens beziehen diese sich auf Wireless Adaptern

https://okidk.de/fix-windows-richtet-die-klassenkonfiguration-fur-dieses-gerat-noch-ein/
https://www.ugg.li/die-klassenkonfiguration-fuer-dieses-geraet-wird-von-windows-noch-eingerichtet-code-56-seit-windows-10-update-1709/

Ich persönlich hatte bis jetzt dieses Problem auch noch nicht wobei in meiner VM habe ich auch glaube nicht so viele WAN Adapter drin stehen.

Titel: Re:qemu und Windows10 - Netzwerkprobleme
Beitrag von: Andreas am 10. März 2024, 06:02:22

Danke für deine Antwort, Sebastan! Leider ist die Geschichte mit der Netzwerkbrücke nicht das Problem - die hatte ich eingerichtet (und funktioniert analg mit meinem Android völlig problemlos). Auch gibt es keine anderen Netzwerkadapter im Windows-Gerätemanager. Ich hatte auch gelesen, dass dieses Problem wohl nur mit Win10 auftritt - Win11 scheint es nich zu kennen. Es ist wohl folglich kein Linux-, sondern ein Windowsproblem. Leider kann ich Win11 nicht installieren, weil es mir nicht gelingt, UEFI mit secured boot zum Laufen zu bringen. Wähle ich "secured", bleibt der Emulator mit schwarzem Bildschirm vor dem Bootbeginn stehen...

LG
Andreas

Titel: Re:qemu und Windows10 - Netzwerkprobleme
Beitrag von: Sebastian am 10. März 2024, 10:40:35

Also wenn ich im Virtmanager ein Windows 11 ISO lade, verwendet libviert eine Hardware Konfiguration angepasst auf Windows 11.

Als UEFI verwendet er folgende Datei:


Code:

❯ pacman -Qo /usr/share/edk2/x64/OVMF_CODE.secboot.4m.fd
/usr/share/edk2/x64/OVMF_CODE.secboot.4m.fd ist in edk2-ovmf 202311-1 enthalten


Zudem, richtet libvirt noch speziell für Windows 11 ein TPM Modul ein.


Code:

<tpm model="tpm-crb">
<backend type="emulator" version="2.0"/>
<alias name="tpm0"/>
</tpm>


Und dann sieht es mit einem Aktuellen Win11 stand 10.03.24 11:00 Uhr, ohne Gast Addons oder virtio Treibern im Gerätemanager so aus "siehe Screenshot"

mir fehlt auf das libvirt wohl auch eine andere Netzwerkkarte verwendet.

Wichtige Befehle für eine Win11 Installation mit Lokalen Benutzerkonto sind dann diese hier:

SHIFT+F10 um eine Kommandozeile im Benutzer Setup zu öffnen.
OOBE\BYPASSNRO um denn Internetzwang zu deaktivieren. Edit: Anscheint wird hierdurch auch der ScureBoot zwang abgeschaltet und warscheinlich auch der TPM zwang
ipconfig /release um die IP Adresse freizugeben. Damit Win11 denkt man hat keine Internetverbindung, um ein lokales Konto zu erstellen

Titel: Re:qemu und Windows10 - Netzwerkprobleme
Beitrag von: Sebastian am 10. März 2024, 11:49:16

Muss mich korrigieren

Ich habe anscheind eine Firmware geladen die SecureBoot unterstützt aber warum auch immer bekomme ich diese in der Firmware nicht aktiviert.

Der OOBE\BYPASSNRO Befehl beim win11 Setup hat woll auch alle anderen Checks wie SecureBoot Enabled auch mit deaktiviert, so das ich erst nicht gemerkt habe das Secureboot nicht angeschaltet ist.

Falls SecureBoot für dich nicht unbedingt Notwendig sein sollte, für Windows 11 hättest du damit zumindest eine Alternative.

Titel: Re:qemu und Windows10 - Netzwerkprobleme
Beitrag von: Sebastian am 10. März 2024, 11:51:05

Ich muss aber mal schauen warum ich Secureboot nicht in der UEFI Firmware aktiviert bekomme.

Titel: Re:qemu und Windows10 - Netzwerkprobleme
Beitrag von: Andreas am 10. März 2024, 15:40:20

Genau das ist auch mein Problem. Ich kann damit Win11 nicht installieren, da "die Systemanforderungen nicht erfüllt sind." Sicher: Ich könnte von Win10 auf Win11 updaten und vorher den Check auf die Systemanforderungen abschalten, dann bekomme ich aber keine Updates mehr von Winzigweich. Also gibt es für mich aktuell keine Lösung mit einer funktionierenden Netzwerkkarte ein updatefähiges Windows zu installieren...

LG
Andreas

Titel: Netzwerkproblem gelöst
Beitrag von: Andreas am 10. März 2024, 17:42:19

Die qemu - Kommandozeilenoption -machine q35 hat es gebracht.

LG
Andreas

Titel: Re:qemu und Windows10 - Netzwerkprobleme
Beitrag von: Andreas am 10. März 2024, 18:40:53

"Es fehlen wichtige Sicherheitsuapdates auf ihrem System" - so sagt es mir Windows10 und listet 10 (!) wichtige Updates auf. Naja - kann ja nicht so wild sein. Auf meinem Arch sind es manchmal über 100 Updates - und das Ganze ist in weniger als 10 Minuten erledigt. Da bin ich aber verwöhnt: bei Windows bin ich nach über 1 Stunde immer noch bei "Update 2", und ich denke, den Rest breche ich für heute ab.

Es ist sicher: Die Geschichte "Windows in einer VM laufen zu lassen" ist ein nettes Experiment. Mit "Linux in einer VM" funktioniert das auch richtig flott - aber nicht mit Windows. Es liegt nicht an der VM - es liegt an Windows. Und damit bleibt: Windows ist für eine Produktionsumgebung (für mich) absolut ungeeignet. Es frisst von den Ressourcen die natürlich begrenzt sind, zuviel: von meiner Lebenszeit. Es macht keinen Sinn, einer sich drehenden Perlenschnur zuzuschauen, wenn man in der Zwischenzeit jede Menge Produktivarbeit mit Linux erledigen könnte.

LG
Andreas

Titel: Re:Netzwerkproblem gelöst
Beitrag von: Sebastian am 10. März 2024, 18:51:02

Zitat von: Andreas am 10. März 2024, 17:42:19
Die qemu - Kommandozeilenoption -machine q35 hat es gebracht.

LG
Andreas


Das deckt sich mit der Standard Konfiguration wie Virtmanager und libvirt die VM Einrichten (siehe Screenshot)

PS:

Man muss nicht den umständlichen Weg gehen, ein Win 10 auf 11 zu upgraden.

Mit dem Befehl OOBE\BYPASSNRO kann man die Hardware Prüfung im Windows 11 Setup abschalten und somit ist Secure Boot, TPM und eine Internetverbindung keine Voraussetzung mehr um ein Win 11 zu installieren.

Dafür im Dialoge wo man das Tastaturprofil auswählen kann shift + F10 drücken, um eine Kommandozeile zu bekommen.

Updates bekommt man dann auch weiterhin. So habe ich das Win 11 in der VM installiert.

PPS:

Was das Secure Boot Problem anbelangt, schätze ich das dem edk2-ovmf Paket keine Schlüssel mit beiliegen und nur die reine Secure Boot Funktionalität bereitgestellt wird.

Ich müsste wahrscheinlich mir erst ein PK Key besorgen bzw. erstellen und diesen im UEFI einbinden, damit ich Secure Boot aktivieren kann

https://wiki.archlinux.org/title/Unified_Extensible_Firmware_Interface/Secure_Boot#Using_your_own_keys


Da ist es im Moment für mich noch einfacher die Voraussetzungen von Win 11 auszuschalten

LG
Sebastian


Titel: Re:qemu und Windows10 - Netzwerkprobleme
Beitrag von: Andreas am 11. März 2024, 07:35:42

Wenn ich die Systemanforderungen von Win11 ausschalte bekomme ich aber keine Updates mehr von Microsoft - habe ich zumindest so gelesen...


UPDATE:
Ich habe den secured boot hinbekommen, Win11 in der VM installiert und alles ist gut. Hier das Script zum Starten der VM
Zitat:
#!/bin/bash
swtpm socket --tpm2 --tpmstate dir=/tmp --ctrl type=unixio,path=/tmp/swtpm-sock &

qemu-system-x86_64 -enable-kvm -machine q35 -device intel-iommu -smp 4 -boot menu=on \
-cdrom ~/Win11_23H2_German_x64v2.iso -boot order=d -drive file=windows11.img,format=raw \
-m 8G -drive if=pflash,format=raw,readonly=on,file=/usr/share/edk2/x64/OVMF_CODE.secboot.4m.fd \
-drive if=pflash,format=raw,file=~/OVMF_VARS.4m.fd -chardev socket,id=chrtpm,path=/tmp/swtpm-sock \
-tpmdev emulator,id=tpm0,chardev=chrtpm -device tpm-tis,tpmdev=tpm0 &


LG
Andreas

Titel: Re:qemu und Windows10 - Netzwerkprobleme
Beitrag von: Andreas am 13. März 2024, 10:15:57

Hallo Sebastian,

kannst Du mir einen Tipp geben, wie ich einen bestehenden und lauffähigen VM-Container (von Win11) nachträglich mit dem Virtmanager verwalten kann? Eigentlich müsste das doch gehen... Der Virtmanager bastelt mir doch nur aus einem angelegten VM-Profil einen Kommandozeilen-Startbefehl für qemu zusammen, oder nicht? Mein Ansatz wäre jetzt der, eine neue VM anzulegen und die Installation von Win11 dann abzubrechen. Danach könnte man in der Konfigurationsdatei der VM einfach die Dateinamen für die Containerdatei ändern und dann sollte es laufen. Geht es vielleicht noch einfacher?

LG
Andreas

Titel: Re:qemu und Windows10 - Netzwerkprobleme
Beitrag von: Sebastian am 14. März 2024, 18:19:15

Hallo Andreas,

Der Virtmanager baut leider nicht einfach einen qemu Befehl zusammen, sondern ist eigentlich ein Frontend für libvirt. Der Libvirt deamon ist dann eigentlich derjenige, der qemu mit dem angegebenen Parameter startet.

Libvirt wiederum verwaltet seine Konfiguration mithilfe von XML Dateien, die mithilfe des Virtmanager grafisch angepasst werden können.

Sobald ich also meinen Virtmanager starte, wird über den libvirt.socket


Code:

❯ systemctl status libvirtd.socket
● libvirtd.socket - libvirt legacy monolithic daemon socket
Loaded: loaded (/usr/lib/systemd/system/libvirtd.socket; enabled; preset: disabled)
Active: active (running) since Thu 2024-03-14 18:40:18 CET; 8min ago
Triggers: ● libvirtd.service
Listen: /run/libvirt/libvirt-sock (Stream)
CGroup: /system.slice/libvirtd.socket

Mär 14 18:40:18 NB-FUJITSU systemd[1]: Listening on libvirt legacy monolithic daemon socket.


der libvirtd.service gestartet, der die VMs verwaltet. Ich habe mich extra für den socket entschieden, da ich keine VMs habe, die sofort nach dem Systemstart mit gestartet werden müssen und den libvirtd.service nur bei Bedarf, wenn ich den Virtmanager starte benötige.

Ich würde so vorgehen:

Wenn also Virtmanager und libvirt läuft, wurde ich eine neue Windows 11 VM mit dem Virtmanager anlegen. Beim Anlegen der VM wird man unter anderem nach einer neuen Festplatte gefragt. Da würde ich einfach über Benutzerdefiniert das alte Image angeben.

Falls Windows durch die vielleicht etwas andere Hardwareumgebung zicken macht, die Kiste noch mal herunterfahren. Und in der Hardware Konfiguration der VM über den Virtmanager die Hardwarekomponenten bei Bedarf anpassen (Klicki Bunti).

Optional:

Optional würde ich vielleicht auch noch das Festplattenimage von raw in qcow2 konvertieren. Damit ist das Festplattenimage dann als Sparse Datei möglich zu verwenden, was nur den aktuellen Speicherplatzverbrauch verwendet. Und zum anderen können in diesem Format auch Snapshots der VM verwendet werden.

Das könnte damit gemacht werden:


Code:

qemu-img convert -p -f raw -O qcow2 source.img target.qcow2


LG
Sebastian

Titel: Re:qemu und Windows10 - Netzwerkprobleme
Beitrag von: Sebastian am 14. März 2024, 18:26:14

Wichtig ist auch noch vor dem ersten Starten der VM den Harken zu setzen damit man die Konfiguration der VM vorher noch anpssen kann.

Z.B. Bootreihenfolge etc. Einstellen

Titel: Re:qemu und Windows10 - Netzwerkprobleme
Beitrag von: Andreas am 15. März 2024, 17:47:30

Hat geklappt - danke für die Tipps!

LG
Andreas

Titel: Aktueller Erfahungsbericht
Beitrag von: Andreas am 16. März 2024, 09:11:04

So sieht die Kommandozeile für den Start der vm aus (beeindruckend):
Code:
/usr/bin/qemu-system-x86_64 -name guest=win11,debug-threads=on -S -object {"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain-13-win11/master-key.aes"} -blockdev {"driver":"file","filename":"/usr/share/edk2/x64/OVMF_CODE.secboot.4m.fd","node-name":"libvirt-pflash0-storage","auto-read-only":true,"discard":"unmap"} -blockdev {"node-name":"libvirt-pflash0-format","read-only":true,"driver":"raw","file":"libvirt-pflash0-storage"} -blockdev {"driver":"file","filename":"/var/lib/libvirt/qemu/nvram/win11_VARS.fd","node-name":"libvirt-pflash1-storage","auto-read-only":true,"discard":"unmap"} -blockdev {"node-name":"libvirt-pflash1-format","read-only":false,"driver":"raw","file":"libvirt-pflash1-storage"} -machine pc-q35-8.2,usb=off,vmport=off,smm=on,dump-guest-core=off,memory-backend=pc.ram,pflash0=libvirt-pflash0-format,pflash1=libvirt-pflash1-format,hpet=off,acpi=on -accel kvm -cpu host,migratable=on,hv-time=on,hv-relaxed=on,hv-vapic=on,hv-spinlocks=0x1fff -global driver=cfi.pflash01,property=secure,value=on -m size=8388608k -object {"qom-type":"memory-backend-ram","id":"pc.ram","size":8589934592} -overcommit mem-lock=off -smp 4,sockets=4,cores=1,threads=1 -uuid b92a323d-fca9-45da-9842-5bee2923d86b -no-user-config -nodefaults -chardev socket,id=charmonitor,fd=31,server=on,wait=off -mon chardev=charmonitor,id=monitor,mode=control -rtc base=localtime,driftfix=slew -global kvm-pit.lost_tick_policy=delay -no-shutdown -global ICH9-LPC.disable_s3=1 -global ICH9-LPC.disable_s4=1 -boot strict=on -device {"driver":"pcie-root-port","port":16,"chassis":1,"id":"pci.1","bus":"pcie.0","multifunction":true,"addr":"0x2"} -device {"driver":"pcie-root-port","port":17,"chassis":2,"id":"pci.2","bus":"pcie.0","addr":"0x2.0x1"} -device {"driver":"pcie-root-port","port":18,"chassis":3,"id":"pci.3","bus":"pcie.0","addr":"0x2.0x2"} -device {"driver":"pcie-root-port","port":19,"chassis":4,"id":"pci.4","bus":"pcie.0","addr":"0x2.0x3"} -device {"driver":"pcie-root-port","port":20,"chassis":5,"id":"pci.5","bus":"pcie.0","addr":"0x2.0x4"} -device {"driver":"pcie-root-port","port":21,"chassis":6,"id":"pci.6","bus":"pcie.0","addr":"0x2.0x5"} -device {"driver":"pcie-root-port","port":22,"chassis":7,"id":"pci.7","bus":"pcie.0","addr":"0x2.0x6"} -device {"driver":"pcie-root-port","port":23,"chassis":8,"id":"pci.8","bus":"pcie.0","addr":"0x2.0x7"} -device {"driver":"pcie-root-port","port":24,"chassis":9,"id":"pci.9","bus":"pcie.0","multifunction":true,"addr":"0x3"} -device {"driver":"pcie-root-port","port":25,"chassis":10,"id":"pci.10","bus":"pcie.0","addr":"0x3.0x1"} -device {"driver":"pcie-root-port","port":26,"chassis":11,"id":"pci.11","bus":"pcie.0","addr":"0x3.0x2"} -device {"driver":"pcie-root-port","port":27,"chassis":12,"id":"pci.12","bus":"pcie.0","addr":"0x3.0x3"} -device {"driver":"pcie-root-port","port":28,"chassis":13,"id":"pci.13","bus":"pcie.0","addr":"0x3.0x4"} -device {"driver":"pcie-root-port","port":29,"chassis":14,"id":"pci.14","bus":"pcie.0","addr":"0x3.0x5"} -device {"driver":"pcie-root-port","port":30,"chassis":15,"id":"pci.15","bus":"pcie.0","addr":"0x3.0x6"} -device {"driver":"pcie-pci-bridge","id":"pci.16","bus":"pci.4","addr":"0x0"} -device {"driver":"qemu-xhci","p2":15,"p3":15,"id":"usb","bus":"pci.1","addr":"0x0"} -device {"driver":"virtio-serial-pci","id":"virtio-serial0","bus":"pci.2","addr":"0x0"} -blockdev {"driver":"file","filename":"/home/andreas/windows11.qcow2","node-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"} -blockdev {"node-name":"libvirt-1-format","read-only":false,"driver":"qcow2","file":"libvirt-1-storage","backing":null} -device {"driver":"ide-hd","bus":"ide.0","drive":"libvirt-1-format","id":"sata0-0-0","bootindex":1} -netdev {"type":"tap","fd":"32","id":"hostnet0"} -device {"driver":"e1000e","netdev":"hostnet0","id":"net0","mac":"52:54:00:42:34:91","bus":"pci.5","addr":"0x0"} -chardev pty,id=charserial0 -device {"driver":"isa-serial","chardev":"charserial0","id":"serial0","index":0} -chardev spicevmc,id=charchannel0,name=vdagent -device {"driver":"virtserialport","bus":"virtio-serial0.0","nr":1,"chardev":"charchannel0","id":"channel0","name":"com.redhat.spice.0"} -chardev socket,id=chrtpm,path=/run/libvirt/qemu/swtpm/13-win11-swtpm.sock -tpmdev emulator,id=tpm-tpm0,chardev=chrtpm -device {"driver":"tpm-crb","tpmdev":"tpm-tpm0","id":"tpm0"} -device {"driver":"usb-tablet","id":"input0","bus":"usb.0","port":"1"} -audiodev {"id":"audio1","driver":"spice"} -spice port=5900,addr=127.0.0.1,disable-ticketing=on,image-compression=off,seamless-migration=on -device {"driver":"qxl-vga","id":"video0","max_outputs":1,"ram_size":67108864,"vram_size":67108864,"vram64_size_mb":0,"vgamem_mb":16,"bus":"pcie.0","addr":"0x1"} -device {"driver":"ich9-intel-hda","id":"sound0","bus":"pcie.0","addr":"0x1b"} -device {"driver":"hda-duplex","id":"sound0-codec0","bus":"sound0.0","cad":0,"audiodev":"audio1"} -global ICH9-LPC.noreboot=off -watchdog-action reset -chardev spicevmc,id=charredir0,name=usbredir -device {"driver":"usb-redir","chardev":"charredir0","id":"redir0","bus":"usb.0","port":"2"} -chardev spicevmc,id=charredir1,name=usbredir -device {"driver":"usb-redir","chardev":"charredir1","id":"redir1","bus":"usb.0","port":"3"} -device {"driver":"virtio-balloon-pci","id":"balloon0","bus":"pci.3","addr":"0x0"} -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny -msg timestamp=on


Geht für Windows11 einwandfrei. Ich habe die beiden raw-Festplattenimages inzwischen in qcow2 migriert - problemlos. Einzig das Netzwerkproblem unter Windows10 ist wieder da wenn ich die VM über den virtmanager starte. Die Option "machine q35" ist auch in der Kommandozeile für Win10 vorhanden - trotzdem ist das alte Netzwerkproblem zuverlässig und stabil wieder da. Starte ich die VM mit meinem (wesentlich kürzeren) selbstgenagelten Kommando läuft das Netzwerk. Win10 scheint sehr bockig zu sein - aktuell noch keine Lösung für den virtmanager vorhanden.

LG
Andreas

Titel: Re:qemu und Windows10 - Netzwerkprobleme
Beitrag von: Andreas am 29. März 2024, 17:29:40

Das Netzwerkproblem tritt nbur auf, wenn man zur Installation ein DEUTSCHES Win10-ISO nimmt. Startet man mit einem englischen, funktioniert das Netzwerk out-of-the-box. Und nach der Installation kann man dann auf "deutsch" switchen.

Es ist ein Microsoft-Problem. Blackbox - keine einfache und logische Lösung möglich.

LG
Andreas


Diskussions- und Newsboard der Linux Interessen Gruppe Suletuxe | Powered by YaBB SE
© 2001-2003, YaBB SE Dev Team. All Rights Reserved.