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/27 16:05 CEST] 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>
  
-==== Caveat ====+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: Es ist prinzipiell möglich, virtuelle Maschinen von VMWare (VMPlayer, VMWare Workstation) auf QEMU umzustellen. Dabei sind jedoch einige Dinge zu beachten:
Zeile 13: Zeile 15:
   * 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.   * 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.
  
-==== Vorbereitungen ====+===== Vorbereitungen =====
  
-=== Linux ===+==== 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 deinstallierenFalls diese… nicht so ganz freiwillig sind, siehe hier. **Achtung**: Das kann zu Mausproblemen führen: Dann Windows mit Tastatur (Windows-TasteTabulator- und Cursortastenherunterfahren. +=== Windows === 
-    * Wer gründlich sein willkann alle vmware-Dateileichen und Rückstände in der Registry entfernen. + 
-  * Treiber-CD-iso einhängen und die virtio-Treiber sowie die 'guest toolsinstallieren (virtio-win-guest-tools.exe bzw. virtio-win-gt-x64.msi).+Die "VMware Tools" sollten nach Möglichkeit rückstandsfrei deinstalliert werdenAus 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ückstandsfreiHä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 ====+===== 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: Anschließend (oder als ersten Schritt, falls Vorbereitungen unter VMware nicht möglich oder darauf verzeichtet wurde) kann die virtuelle Festplatte konvertiert werden:
Zeile 39: Zeile 54:
 </code> </code>
  
-Auf Wunsch kann die ausgegebene qcow2-Datei gleich konvertiert werden:+Die ausgegebene qcow2-Datei kann gleich koprimiert werden:
 <code> <code>
 qemu-img convert -f qcow2 -O qcow2 -c -o compression_type=zstd [qemu.qcow2] [temp_qemu.qcow2] qemu-img convert -f qcow2 -O qcow2 -c -o compression_type=zstd [qemu.qcow2] [temp_qemu.qcow2]
Zeile 45: Zeile 60:
 </code> </code>
  
-Festplatte nach SATA geht direkt.+===== 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 ==== 
  
-==== xdfghdfg ==== 
  
   * vmware-tools deinstallieren   * vmware-tools deinstallieren
Zeile 59: 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 122: Zeile 333:
 (devmgmt.msc -> Hardware) (devmgmt.msc -> Hardware)
  
 +Festplatte nach SATA geht direkt.
Drucken/exportieren