Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
client:vmware_zu_qemu [2026/07/22 17:02 CEST] – +weiter chrclient:vmware_zu_qemu [2026/08/17 14:14 CEST] (aktuell) chr
Zeile 1: Zeile 1:
-===== Umstellung VMWare auf QEMU =====+====== Umstellung VMWare auf QEMU ======
  
 <note important>Achtung - das ist eine Baustelle!</note> <note important>Achtung - das ist eine Baustelle!</note>
  
-Es ist prinzipiell möglich, virtuelle Maschinen von VMWare (VMPlayer, VMWare Workstation) auf QEMU umzustellen. Dabei sind jedoch nach Möglichkeit einige Dinge zu beachten:+Für diese Anleitung wird ein funktionierendes Umfeld mit qemu, libvirt und virt-manager benötigt ([[client:qemu|ausführliche Anleitung]]). 
 + 
 +===== Caveat ===== 
 + 
 +Es ist prinzipiell möglich, virtuelle Maschinen von VMWare (VMPlayer, VMWare Workstation) auf QEMU umzustellen. Dabei sind jedoch einige Dinge zu beachten:
  
   * In erster Linie können zum Booten notwendige (Massenspeicher-)Treiber Probleme bereiten:   * In erster Linie können zum Booten notwendige (Massenspeicher-)Treiber Probleme bereiten:
     *  Die unter qemu/libvirt sehr vorteilhaften viostor-Treiber können zwar vor der Konvertierung installiert werden, dennoch macht Windows gern Ärger, diese beim Booten auch zu benutzen.     *  Die unter qemu/libvirt sehr vorteilhaften viostor-Treiber können zwar vor der Konvertierung installiert werden, dennoch macht Windows gern Ärger, diese beim Booten auch zu benutzen.
     * Im Windows vorhandene IDE- bzw. SATA-Treiber können benutzt werden, sind aber mit Leistungseinbußen gegenüber virtio ('virt-IO') verbunden.     * Im Windows vorhandene IDE- bzw. SATA-Treiber können benutzt werden, sind aber mit Leistungseinbußen gegenüber virtio ('virt-IO') verbunden.
-  * VMware ist nicht direkt für rückstandsfrei entfernbare Software bekannt. Die 'VMware Tools' machen da keine Ausnahme. 
  
-==== Vorbereitungen ====+  * VMware ist nicht direkt für rückstandsfrei entfernbare Software bekannt. Die 'VMware Tools' machen da keine Ausnahme und sollten nach Möglichkeit noch unter VMware/VMplayer entfernt werden.
  
-=== Linux ===+===== Vorbereitungen ===== 
 + 
 +==== Linux ====
  
 Benötigt werden für Linux die qemu-Gastwerkzeuge ("qemu-guest-agent") und für die virt-IO-Treiber ein Kernel >= 2.6.25 (was sehr vermutlich sowieso der Fall ist). Die qemu-Gastwerkzeuge sollten in den Repositorien der betreffenden Distribution enthalten sein.  Benötigt werden für Linux die qemu-Gastwerkzeuge ("qemu-guest-agent") und für die virt-IO-Treiber ein Kernel >= 2.6.25 (was sehr vermutlich sowieso der Fall ist). Die qemu-Gastwerkzeuge sollten in den Repositorien der betreffenden Distribution enthalten sein. 
  
-=== Windows ===+==== Windows ====
  
 Benötigt werden die virtio-Treiber und die Gastwerkzeuge. Beides ist in einer .iso-Datei zu finden [[https://github.com/virtio-win/virtio-win-pkg-scripts/blob/master/README.md|hier]] zu finden. (Einzelne Treiber bzw. Gastwerkzeuge [[https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/|hier]]) Benötigt werden die virtio-Treiber und die Gastwerkzeuge. Beides ist in einer .iso-Datei zu finden [[https://github.com/virtio-win/virtio-win-pkg-scripts/blob/master/README.md|hier]] zu finden. (Einzelne Treiber bzw. Gastwerkzeuge [[https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/|hier]])
 +
 +
 +===== Umstellung =====
 +
 +==== Vorbereitungen unter VMPlayer ====
  
 Es ist vorteilhaft, noch unter VMware/VMware Player einige Dinge auszuführen: Es ist vorteilhaft, noch unter VMware/VMware Player einige Dinge auszuführen:
  
-  * "VMware Tools" nach Möglichkeit möglichst rückstandsfrei deinstallieren. Falls diese… nicht so ganz freiwillig sind, siehe hier. +=== Windows ===
-    * Wer gründlich sein will, kann alle vmware-Dateileichen und Rückstände in der Registry entfernen. +
-  * Treiber-CD-iso einhängen und die virtio-Treiber sowie die 'guest tools' installieren (virtio-win-guest-tools.exe bzw. virtio-win-gt-x64.msi). +
-  * +
  
-==== dsgsdfgsdfg ====+Die "VMware Tools" sollten nach Möglichkeit rückstandsfrei deinstalliert werden. Aus irgendeinem Grund funktioniert dies auf dem unter Windows üblichen Weg (Einstellungen, "Apps") oft nur dann, wenn die betreffende VM unter VMWare / VMPlayer läuft, und selbst dann oft nicht rückstandsfrei. Hängen Sie die Treiber-CD-iso ein und installieren Sie die virtio-Treiber sowie die 'Guest Tools' (virtio-win-guest-tools.exe bzw. virtio-win-gt-x64.msi). 
 + 
 +**Achtung**: Die Entfernung der VMWare-Tools kann zu Mausproblemen führen: Fahren Sie dann das Windows mit der Tastatur runter: Windows-Taste, Tabulator, bis Marke auf Usernamen rechts unten (verm. "student") ruht, Cursor nach rechts, [Eingabe und 'Herunterfahren' wählen. 
 + 
 +  * Wer gründlich sein will, kann jetzt oder später alle vmware-Dateileichen und Rückstände in der Registry entfernen. 
 + 
 + 
 +=== Linux === 
 + 
 +Deinstallieren Sie die open-vm-tools und, wenn vorhanden, die open-vm-tools-desktop. 
 + 
 +===== Konvertierung virtuelle Festplatte ===== 
 + 
 +Anschließend (oder als ersten Schritt, falls Vorbereitungen unter VMware nicht möglich oder darauf verzeichtet wurde) kann die virtuelle Festplatte konvertiert werden: 
 + 
 +<code> 
 +# für vmplayer.vmdk die zu konvertierende .vmdk einsetzen, geeigneten Namen für qemu.qcow2 wählen: 
 +qemu-img convert -p -f vmdk -O qcow2 [vmplayer.vmdk] [qemu.qcow2] 
 +</code> 
 + 
 +Die ausgegebene qcow2-Datei kann gleich koprimiert werden: 
 +<code> 
 +qemu-img convert -f qcow2 -O qcow2 -c -o compression_type=zstd [qemu.qcow2] [temp_qemu.qcow2] 
 +mv [temp_qemu.qcow2] [qemu.qcow2] 
 +</code> 
 + 
 +===== xml-Datei erstellen ===== 
 + 
 +Als nächstes ist eine xml-Datei zum Ersatz der unter VMWare verwendeten .vmx nötig. Diese kann leider nicht automatisch aus einer .vmx-Datei generiert werden (jedenfalls derzeit noch nicht). In untenstehender Vorlage müssen aber nur an wenigen Stellen Anpassungen getroffen werden. Es ist sicher keine schlechte Idee, der .xml- und .qcow2-Datei den gleichen Namen zu geben. 
 + 
 +++++xml-Vorlagendatei (Ausklappen)| 
 +<code> 
 +<domain type="kvm"> 
 +  <name>*** Hier Name der VM eintragen ***</name> 
 +  <uuid></uuid> 
 +  <metadata> 
 +    <libosinfo:libosinfo xmlns:libosinfo="http://libosinfo.org/xmlns/libvirt/domain/1.0"> 
 +      <libosinfo:os id="*** Art des Betriebssystems ein ***"/> 
 +    </libosinfo:libosinfo> 
 +  </metadata> 
 +  <memory unit="KiB">8388608</memory> 
 +  <currentMemory unit="KiB">8388608</currentMemory> 
 +  <vcpu placement="static">1</vcpu> 
 +  <os> 
 +    <type arch="x86_64" machine="pc-q35-5.2">hvm</type> 
 +  </os> 
 +  <features> 
 +    <acpi/> 
 +    <apic/> 
 +    <hyperv mode="custom"> 
 +      <relaxed state="on"/> 
 +      <vapic state="on"/> 
 +      <spinlocks state="on" retries="8191"/> 
 +    </hyperv> 
 +    <vmport state="off"/> 
 +  </features> 
 +  <cpu mode="host-model" check="partial"/> 
 +  <clock offset="localtime"> 
 +    <timer name="rtc" tickpolicy="catchup"/> 
 +    <timer name="pit" tickpolicy="delay"/> 
 +    <timer name="hpet" present="no"/> 
 +    <timer name="hypervclock" present="yes"/> 
 +  </clock> 
 +  <on_poweroff>destroy</on_poweroff> 
 +  <on_reboot>restart</on_reboot> 
 +  <on_crash>destroy</on_crash> 
 +  <pm> 
 +    <suspend-to-mem enabled="no"/> 
 +    <suspend-to-disk enabled="no"/> 
 +  </pm> 
 +  <devices> 
 +    <emulator>/usr/bin/qemu-system-x86_64</emulator> 
 +    <disk type="file" device="disk"> 
 +      <driver name="qemu" type="qcow2"/> 
 +      <source file="*** Hier bitte Dateinamen der VM mit vollem Pfad eintragen ***"/> 
 +      <target dev="vda" bus="virtio"/> 
 +      <boot order="1"/> 
 +      <address type="pci" domain="0x0000" bus="0x04" slot="0x00" function="0x0"/> 
 +    </disk> 
 +    <disk type="file" device="cdrom"> 
 +      <driver name="qemu" type="raw"/> 
 +      <source file="/home/chr/isos/virtio-win-0.1.285.iso"/> 
 +      <target dev="sdb" bus="sata"/> 
 +      <readonly/> 
 +      <address type="drive" controller="0" bus="0" target="0" unit="1"/> 
 +    </disk> 
 +    <disk type="file" device="floppy"> 
 +      <driver name="qemu" type="raw"/> 
 +      <target dev="fda" bus="fdc"/> 
 +      <readonly/> 
 +      <address type="drive" controller="0" bus="0" target="0" unit="0"/> 
 +    </disk> 
 +    <disk type="file" device="floppy"> 
 +      <driver name="qemu" type="raw"/> 
 +      <target dev="fdb" bus="fdc"/> 
 +      <readonly/> 
 +      <address type="drive" controller="0" bus="0" target="0" unit="1"/> 
 +    </disk> 
 +    <controller type="usb" index="0" model="qemu-xhci" ports="15"> 
 +      <address type="pci" domain="0x0000" bus="0x02" slot="0x00" function="0x0"/> 
 +    </controller> 
 +    <controller type="sata" index="0"> 
 +      <address type="pci" domain="0x0000" bus="0x00" slot="0x1f" function="0x2"/> 
 +    </controller> 
 +    <controller type="pci" index="0" model="pcie-root"/> 
 +    <controller type="pci" index="1" model="pcie-root-port"> 
 +      <model name="pcie-root-port"/> 
 +      <target chassis="1" port="0x10"/> 
 +      <address type="pci" domain="0x0000" bus="0x00" slot="0x02" function="0x0" multifunction="on"/> 
 +    </controller> 
 +    <controller type="pci" index="2" model="pcie-root-port"> 
 +      <model name="pcie-root-port"/> 
 +      <target chassis="2" port="0x11"/> 
 +      <address type="pci" domain="0x0000" bus="0x00" slot="0x02" function="0x1"/> 
 +    </controller> 
 +    <controller type="pci" index="3" model="pcie-root-port"> 
 +      <model name="pcie-root-port"/> 
 +      <target chassis="3" port="0x12"/> 
 +      <address type="pci" domain="0x0000" bus="0x00" slot="0x02" function="0x2"/> 
 +    </controller> 
 +    <controller type="pci" index="4" model="pcie-root-port"> 
 +      <model name="pcie-root-port"/> 
 +      <target chassis="4" port="0x13"/> 
 +      <address type="pci" domain="0x0000" bus="0x00" slot="0x02" function="0x3"/> 
 +    </controller> 
 +    <controller type="pci" index="5" model="pcie-root-port"> 
 +      <model name="pcie-root-port"/> 
 +      <target chassis="5" port="0x14"/> 
 +      <address type="pci" domain="0x0000" bus="0x00" slot="0x02" function="0x4"/> 
 +    </controller> 
 +    <controller type="pci" index="6" model="pcie-root-port"> 
 +      <model name="pcie-root-port"/> 
 +      <target chassis="6" port="0x15"/> 
 +      <address type="pci" domain="0x0000" bus="0x00" slot="0x02" function="0x5"/> 
 +    </controller> 
 +    <controller type="virtio-serial" index="0"> 
 +      <address type="pci" domain="0x0000" bus="0x03" slot="0x00" function="0x0"/> 
 +    </controller> 
 +    <controller type="fdc" index="0"/> 
 +    <interface type="network"> 
 +      <mac address="52:54:00:b4:da:3e"/> 
 +      <source network="default"/> 
 +      <model type="e1000e"/> 
 +      <address type="pci" domain="0x0000" bus="0x01" slot="0x00" function="0x0"/> 
 +    </interface> 
 +    <serial type="pty"> 
 +      <target type="isa-serial" port="0"> 
 +        <model name="isa-serial"/> 
 +      </target> 
 +    </serial> 
 +    <console type="pty"> 
 +      <target type="serial" port="0"/> 
 +    </console> 
 +    <channel type="spicevmc"> 
 +      <target type="virtio" name="com.redhat.spice.0"/> 
 +      <address type="virtio-serial" controller="0" bus="0" port="1"/> 
 +    </channel> 
 +    <input type="tablet" bus="usb"> 
 +      <address type="usb" bus="0" port="1"/> 
 +    </input> 
 +    <input type="mouse" bus="ps2"/> 
 +    <input type="keyboard" bus="ps2"/> 
 +    <graphics type="spice" autoport="yes"> 
 +      <listen type="address"/> 
 +      <image compression="off"/> 
 +    </graphics> 
 +    <sound model="ich9"> 
 +      <address type="pci" domain="0x0000" bus="0x00" slot="0x1b" function="0x0"/> 
 +    </sound> 
 +    <audio id="1" type="spice"/> 
 +    <video> 
 +      <model type="qxl" ram="65536" vram="65536" vgamem="16384" heads="1" primary="yes"/> 
 +      <address type="pci" domain="0x0000" bus="0x00" slot="0x01" function="0x0"/> 
 +    </video> 
 +    <redirdev bus="usb" type="spicevmc"> 
 +      <address type="usb" bus="0" port="2"/> 
 +    </redirdev> 
 +    <redirdev bus="usb" type="spicevmc"> 
 +      <address type="usb" bus="0" port="3"/> 
 +    </redirdev> 
 +    <watchdog model="itco" action="reset"/> 
 +    <memballoon model="virtio"> 
 +      <address type="pci" domain="0x0000" bus="0x05" slot="0x00" function="0x0"/> 
 +    </memballoon> 
 +  </devices> 
 +</domain> 
 +</code> 
 +++++ 
 + 
 +Folgende Einträge müssen angepaßt werden: 
 +  * <name>*** Hier den Namen der VM eintragen (muß nicht der vorherige sein) ***</name> 
 +  * <libosinfo:os id="*** ID des virtualisierten Betriebssystems ***"/> 
 +    * Beispiele wären (genauso eingeben, hier als Wert, nicht als Link zum Klicken gemeint): 
 +    * "http://microsoft.com/win/10", "http://microsoft.com/win/11" 
 +    * "http://ubuntu.com/ubuntu/24.04", "http://opensuse.org/opensuse/15.6" 
 +    * Wenn Sie sich bzgl. einer Linuxversion unsicher sind, verwenden Sie für den Anfang einfach "http://libosinfo.org/linux/2024". Das läßt sich später mit virt-manager genauer einstellen. 
 +  * <source file="*** Hier  Dateinamen der VM mit vollem Pfad eintragen ***"/> 
 +  * Anm.: Der uuid-Wert ist absichtlich leer. libvirt trägt beim Import eine ein. 
 + 
 + 
 +===== Import nach libvirt ===== 
 + 
 +Importieren Sie die xml-Datei mit <code>virsh -c qemu:///system define [xml-Datei.xml]</code>. Mehr dazu unter [[https://bwlehrpool.de/wiki/doku.php/client/qemu#download_und_import|QEMU: Download und Import]]. 
 + 
 + 
 +===== Erststart ===== 
 + 
 +Starten Sie den virt-manager. Bei den meisten Oberflächen geht das am schnellsten mit [Alt]+[F2], 'virt-manager' eingeben. Ihre übertragene VM sollte nun in Liste der verfügbaren VMs enthalten sein. Markieren Sie diese und klicken auf das 'Öffnen'-Symbol (oder rechtsklick, 'Öffnen'). Das Monitorsymbol links zeigt dann die laufende VM; das Informationssymbol die dazugehörigen xml-Daten. 
 + 
 +==== Erststart virt-manager ==== 
 + 
 +Falls dieses die erste überhaupt gestartete VM in diesem Umfeld ist, werden Sie nun vermutlich eine mittlere Freude erleben: 
 + 
 +  * „Fehler beim Starten … network 'default ist not active'“: Vergl. [[https://bwlehrpool.de/wiki/doku.php/client/qemu#netzwerk|qemu: Netzwerk]] 
 +  * „Fehler bei Verbindung mit grafischer Konsole … Namespace SpiceClientGtk not available“: Vergl. [[https://bwlehrpool.de/wiki/doku.php/client/qemu#grafische_konsolelaufwerke|qemu: Grafische Konsole]]. 
 +  * „Fehler beim Starten … Cannot access storage file '/dev/sr0'“ - falls Ihr Rechner kein CDROM/DVD-Laufwerk hat. Vergl. [[https://bwlehrpool.de/wiki/doku.php/client/qemu#laufwerke|qemu: Laufwerke]]. 
 + 
 +Keine Sorge - vom schnell entfernten CDROM abgesehen bleiben diese Fehler in Zukunft weg. 
 + 
 +==== Erststart VM ==== 
 + 
 +VM zeigt eine Konsole mit „**Booting from Hard Disk… No bootable device**“: Schalten Sie die VM aus (Dreieckssymbol rechts neben Ausschaltesymbol, „Ausschalten erzwingen“). Wechseln Sie dann zur xml-Ansicht (Informationssymbol), dort dann links in der Liste zu „OS-Information“. Ändern Sie den Eintrag <os> zu <os firmware="efi">. Wechseln Sie zur VM-Ansicht (Monitorsymbol), und starten neu. 
 + 
 +Falls es Probleme mit den virtio-Treibern geben sollte oder Sie diese absichtlich nicht installiert haben, erscheint der beliebte **Bluescreen** „An diesem Gerät ist ein Problem ausgetreten … es wird ein Neustart ausgeführt“. Lassen Sie in Ruhe automatisch neustarten; es sollte dann eine Anzeige „Tastaturlayout auswählen“. Wählen Sie eine, und gehen dann auf „Problembehandlung“ gefolgt von „Eingabeaufforderung“. Wechseln Sie zur xml-Ansicht und klicken in der linken Liste auf das CDROM. Sollte kein CDROM vorhanden sein, fügen Sie eins hinzu: Schalten Sie die VM aus, gehen in der Liste links ganz unten auf „Gerät hinzufügen“, Gerätetyp „CDROM-Gerät“, Bustyp „SATA“. , dann auf das links erscheinende Gerät „SATA CDROM“, rechts „Durchsuchen“, unten mittig auf „Lokal durchsuchen“. Suchen Sie in jedem Fall die virtio-win-iso-Datei und wählen diese aus, klicken Sie abschließend unten rechts auf „Übernehmen“. 
 + 
 + 
 + „“ 
 + 
 +„“ 
 +„“ 
 + 
 +==== VMWare-Tools ====
  
-(devmgmt.msc -> Hardware) 
  
-==== xdfghdfg ==== 
  
   * vmware-tools deinstallieren   * vmware-tools deinstallieren
Zeile 43: Zeile 279:
   * virtio-win-guest-tools.exe   * virtio-win-guest-tools.exe
  
-==== virt. Festplatte konvertieren ==== 
- 
-qemu-img convert -p -f vmdk -O qcow2 rein.vmdk raus.qcow2 
--p: Fortschritt anzeigen, -f: Eingabeformat, -O: Ausgabeformat 
- 
-qemu-img convert -f qcow2 -O qcow2 -c -o compression_type=zstd [Datei.qcow2] [temp_Datei.qcow2] 
-mv [temp_Datei.qcow2] [Datei.qcow2] 
- 
-Festplatte nach SATA geht direkt. 
  
  
Zeile 102: Zeile 329:
 Von CD virtio-win-gt-x86.msi oder gleich virtio-win-guest-tools.exe nachinstallieren. Von CD virtio-win-gt-x86.msi oder gleich virtio-win-guest-tools.exe nachinstallieren.
  
 +==== dsgsdfgsdfg ====
  
 +(devmgmt.msc -> Hardware)
 +
 +Festplatte nach SATA geht direkt.
Drucken/exportieren