Umstellung VMWare auf QEMU

Für diese Anleitung wird ein funktionierendes Umfeld mit qemu, libvirt und virt-manager benötigt (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:
    • 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.
  • 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

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.

Windows

Benötigt werden die virtio-Treiber und die Gastwerkzeuge. Beides ist in einer .iso-Datei zu finden hier zu finden. (Einzelne Treiber bzw. Gastwerkzeuge hier)

Umstellung

Vorbereitungen unter VMPlayer

Es ist vorteilhaft, noch unter VMware/VMware Player einige Dinge auszuführen:

Windows

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. Bei Entfernungsproblemen der Tools siehe VMWare-Tools-Entfernung.

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:

# 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]

Die ausgegebene qcow2-Datei kann gleich komprimiert werden:

qemu-img convert -f qcow2 -O qcow2 -c -o compression_type=zstd [qemu.qcow2] [temp_qemu.qcow2]
mv [temp_qemu.qcow2] [qemu.qcow2]

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)

Folgende Einträge müssen angepaßt werden:

Import nach libvirt

Importieren Sie die xml-Datei mit

virsh -c qemu:///system define [xml-Datei.xml]

. Mehr dazu unter QEMU: Download und Import.

Erststart virt-manager

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 (oder nicht laufende) VM; das Informationssymbol eine Übersicht der virtuellen Hardware und die dazugehörigen xml-Daten.

Gastbetriebssystem-Angabe

Es ist u.a. aus Performanzgründen von Vorteil, das Gastbetriebssystem möglichst genau anzugeben. Gehen Sie dazu auf das Informationssymbol [i], dort auf „OS-Informationen“, Reiter auf „Details“. Löschen Sie dort eventuelle Angaben und geben beispielsweise den Anfang des Namens der Distribution ein; das sollte in den meisten Fällen schon ziemlich gute Ergebnisse liefern. Wenn kein genauer Treffer geliefert wird, nehmen Sie eine ältere Version derselben Distribution oder bleiben bei 'linux2024' oder 'linux2022'. Bei Windowsen verfahren Sie analog. Sollte Ihr Gastbetriebssystem sehr alt sein, taucht es evtl. erst nach Markierung des Häkchens bei „Abgeküngite Betriebssysteme anzeigen“ auf.

Erststart VM

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. qemu: Netzwerk
  • „Fehler bei Verbindung mit grafischer Konsole … Namespace SpiceClientGtk not available“: Vergl. qemu: Grafische Konsole.
  • „Fehler beim Starten … Cannot access storage file '/dev/sr0'“ - falls Ihr Rechner kein CDROM/DVD-Laufwerk hat. Vergl. qemu: Laufwerke.

Keine Sorge - vom schnell entfernten CDROM abgesehen bleiben diese Fehler in Zukunft weg.

No bootable device

Wenn die VM eine Konsole mit „Booting from Hard Disk… No bootable device“ anzeigt: 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.

Device … access denied

Bei Windows 11: Wenn viostor-Treiber nicht in Notwindowspartition (und und Windows-Hauptpartition?) installiert sind, kann Meldung a la „BdsDxe: … access denied“ erscheinen. Abhilfe: Bei („OS Information“) unter „firmware“ im Eintrag 'feature enabled=„yes“ name=„secure-boot“' enabled auf no zu setzen. Anschließend Notboot möglich, Treiber installieren wie unten beschrieben. Anschließend wieder auf 'yes' setzen (wenn das das bootende 'richtige' Windows nicht selbst tut).

Virtio-Treiber

Beim Booten wird bei Problemen mit den virtio-Treibern (oder wenn Sie diese bewußt nicht installiert haben) vermutlich der beliebte Bluescreen mit einem Problem a la INACCESSIBLE_BOOT_DEVICE auftreten.

Als nächstes muß dann natürlich eine CD (bzw. .iso) mit den Treibern eingehängt werden:

  • Wechseln Sie zur xml-Ansicht ([i]-Symbol) 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 der xml-Ansicht ganz unten links auf „Gerät hinzufügen“, Gerätetyp „CDROM-Gerät“, Bustyp „SATA“.
  • Bei „Quellpfad“ rechts auf „Durchsuchen“, im sich öffnenden Fenster unten mittig auf „Lokal durchsuchen“, dann auf ISO-Datei klicken. Aktuell derzeit (Sept. 2026) ist virtio-win-0.1.285.iso.

Anschließend ggf. neu starten, automatische Reboots abwarten (ggf. zwei Mal), bis „Reparatur“' und „Diagnose wird ausgeführt“ erscheint. Dort dann - kann im Ablauf leicht unterschiedlich sein - unter „Problembehandlung“ bzw. „Erweiterte Optionen“ zur Option „Eingabeaufforderung“ gelangt werden. Diese auswählen, gegebenenfalls als User „root“ (Administrator im Pool) auswählen, Paßwort eintüten. Wichtig ist, zu einer Kommandozeile zu gelangen. Untem im Prompt ist der Laufwerksbuchstabe des Not-Windows angegeben, es schadet nicht, sich diesen zu merken.

Prüfen Sie, ob das CD-Laufwerk und das (virtuelle) Laufwerk erkannt wurde:

wmic logicaldisk get caption, volumename

… sollte das CDROM a la „D: virtio-win-1.2.3“ anzeigen; Laufwerksbuchstabe merken. Für die Beispiele nehmen wir „d:“ an; kann natürlich abweichen. Man kann natürlich auch einfach mit 'dir c:', 'dir d:' usw durchtesten. Der wmic-Befehl oder spätestens

diskpart     (in diskpart: "list disk", "list volume"" - "exit" beendet)

sollte das Systemlaufwerk ([Buchstabe]:\Windows) angezeigen. Buchstabe merken (aus Poolsystem meistens c:, aber durchaus nicht immer), ggf. mit „dir [Buchstabe]\windows\system32“ nachprüfen.

Wenn aber nur das CDROM und evtl. die RAM-Disk des Not-Windows erscheint, müssen zuerst die Treiber in das Not-Windows installiert werden (dieses ist meistens X:, anfänglich in Prompt der Kommandozeile). Falls bereits die richtige Partition erscheint, kann der nächste Schritt übersprungen werden.

Falls also das richtige Laufwerk nicht erscheint, müssen temporär die Treiber in das Not-Windows installiert werden - bei Windows 10 „win10“ einsetzen, bei Windows 11 analog „win11“; im Zweifelsfall in d:\viostor nachschauen. Beispiel für Windows 11:

drvload d:\viosstor\w11\amd64\viostor.inf

… anschließend wie oben beschrieben prüfen (wmic/diskpart); das Systemlaufwerk sollte nun erscheinen. Buchstabe merken, Annahme hier System auf c:, CDROM auf d: Windows 11, Treiberinstallation:

dism /Image:c:\ /Add-Driver:d:\viostor\w11\amd64\viostor.inf

Das Windows sollte dann starten - reboot.

VMWare-Tools

Falls die VMWare-Tools vor der Umstellung nicht deinstalliert wurden (oder werden konnten), ist unter https://itsimple.info/?p=3161 ein ziemlich gutes Powershell-Skript zu finden. Dieses nach dem Herunterladen umbenennen (Endung .ps1). Vor der Ausführung in einer Powershell mit Adminrechten:

  • Mit
    Get-ExecutionPolicy -List

    bestehende Einstellung anschauen, dann mit

  • Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope LocalMachine oder Set-ExecutionPolicy -ExecutionPolicy Unrestricted

    Ausführung zulassen.

  • Anschließend die Ausführungseinstellung zurücksetzen (Annahme, „Get-ExecutionPolicy -List“ lieferte „Restricted“):
    Set-ExecutionPolicy -ExecutionPolicy Restricted<code>

Reboot.

VMWare-Dienste

Abschließend sicherheitshalber Dienste kontrollieren und beenden:

  • Taskman als Admin starten, in „Autostart“ alles mit „vmware“ im Namen deaktivieren, unter 'Dienste' ebenso.
  • 'Services' als Admin starten, ebenfalls alles mit „vmware“ im Namen abmurksen: Rechtsklick, Eigenschaften, bei Dienststatus „Beenden“, Starttyp auf „Deaktiviert“ setzen.

Reboot schadet nicht. Zur gründlicheren Entfernung hier ein Blogartikel.

Export und Upload

Abschließend muß eine neue xml-Datei mit den aktuellen Daten der konvertierten VM geschrieben werden. Dazu mit

  • virsh -c qemu:///system list --all

die Namen der lokal verfügbaren VMs auflisten lassen, und mit

  • virsh -c qemu:///system dumpxml [VM-Name] > dateiname.xml

exportieren lassen. Es empfiehlt sich wie immer, einen sprechenden Namen zu verwenden. Diese xml-Datei kann dann mit der bwLehrpool-Suite oder der Web-bwLehrpool-Suite aufgegriffen und zum Upload der konvertierten VM in das Poolsystem verwendet werden.

Drucken/exportieren