Tags: Hyper-V, Migration, VHD
Hyper-V führte mit Windows Server 2012 R2 virtuelle Maschinen der zweiten Generation ein. Sie bieten gegenüber VMs Gen1 einige Vorteile, so dass man eine Konvertierung in Erwägung ziehen sollte. Eine automatische Umwandlung ist zwar nicht vorgesehen, eine Neuinstallation kann man aber vermeiden.
Es gibt verschiedene Gründe, warum Workloads nach wie vor in einer VM der ersten Generation laufen. Häufig haben sie schon einige Jahre auf dem Buckel und wurden unter einer Version von Hyper-V erstellt, unter der es nur diesen VM-Typ gab. Sie lassen sich auch unter einer neueren Version des Hypervisors weiternutzen und genießen vollen Support.
Umgekehrt kann es natürlich auch sein, dass in der VM ursprünglich eine Version von Windows installiert wurde, die nur VMs Gen1 unterstützt. Das Gast-OS wurde inzwischen möglicherweise zwar aktualisiert, aber es ist in der alten VM gefangen.
Schließlich kann es natürlich vorkommen, dass man beim Erstellen einer VM versehentlich Gen1 gewählt hat, weil dies im Hyper-V Manager immer noch die Vorgabe ist.
Vorteile der Generation 2
Zu den wichtigsten Vorzügen der neueren VMs gehört eine höhere Performance, weil das Gast-OS dort "weiß", dass es auf einem Hypervisor läuft und daher keine Hardware emuliert werden muss. VMs Gen2 unterstützen nur virtuelle SCSI-Controller, und VHDs, die an ihnen hängen, lassen sich zur Laufzeit hinzufügen (Hot-add), entfernen, vergrößern und verkleinern. Im laufenden Betrieb lassen sich zudem Netzwerkadapter hinzufügen.
Möchte man eine VM auf Basis von UEFI einrichten, dann geht das nur mit einer der Generation 2. Entsprechend ist Secure Boot nur dort verfügbar. Virtuelle Maschinen Gen1 hingegen unterstützen nur BIOS und sind entsprechend auch auf das MBR-Layout der Disks beschränkt. Dies erweist sich als die wesentliche Hürde bei der Migration.
Alte VMs finden
Im ersten Schritt wird man sich einen Überblick verschaffen, um zu sehen, welche VMs noch Gen1 sind. Mit PowerShell lässt sich das relativ leicht herausfinden:
Get-VM | select vmname, generation
Dieser Befehl listet alle virtuellen Maschinen auf dem lokalen Host auf und gibt deren Namen sowie Generation aus.
Grundsätzlich könnte man sich nun daran machen, die alten VMs zu konvertieren. Allerdings lässt sich dieses Vorhaben nicht umsetzen, wenn das Gast-OS älter als Windows Server 2012 R2 ist oder in einer 32-Bit-Version vorliegt.
Daher muss man zusätzlich ermitteln, welches OS in einer VM installiert ist. Wenn diese angeschaltet ist, lässt sich das relativ einfach über WMI feststellen:
Get-CimInstance -ComputerName <myComputer> -ClassName win32_operatingsystem |
select Caption, OSArchitecture
Ist eine VM dagegen ausgeschaltet, dann müsste man die VHD mit der Systempartition mounten und darin nachschauen.
Disk-Layout auf GPT ändern
Ist geklärt, welche VMs sich zur Konvertierung eignen, dann sollte man zuerst das Gast-OS auf die Version von Windows aktualisieren, die man für die neue Umgebung vorgesehen hat.
Anschließend konvertiert man das Systemlaufwerk nach GPT. Microsoft sieht seit Windows 10 1703 dafür MBR2GPT.exe vor. Man ruft es auf einem Live-System so auf:
mbr2gpt.exe /convert /allowFullOS
Das Tool befindet sich in %SystemRoot%\system32 und lässt sich einfach auf andere Rechner kopieren, wenn es dort nicht vorhanden ist. Das gilt etwa für Windows Server.
Die Empfehlung lautet aber in diesem Fall, die VM herunterzufahren, von einem aktuellen Windows PE zu booten und die Umwandlung zu GPT von dort zu starten. Der Befehl sieht dann anders aus:
mbr2gpt.exe /convert /disk:<disknumber>
Die Nummern der Laufwerke kann man sich in diskpart mit
list disk
anzeigen lassen.
VHDs in neue VM übernehmen
Nachdem es nicht möglich ist, eine VM Gen1 in eine des Typs Gen2 zu konvertieren, muss man nun eine neue virtuelle Maschine des Typs 2 anlegen und die VHDs mit ihr verbinden.
Ein Nebeneffekt dieser Aktion besteht darin, dass man damit auch die VM-Version auf einen aktuellen Stand bringt. Nur dadurch sind viele der neueren Funktionen auf Hyper-V in Server 2016 oder 2019 verfügbar.
Allerdings führt auch von dort kein Weg mehr zurück, so dass die VM dann nicht mehr auf einem älteren Hypervisor läuft. Beim expliziten Upgrade gibt daher die Hyper-V Manager eine entsprechende Warnung aus.
Täglich Know-how für IT-Pros mit unserem Newsletter
Verwandte Beiträge
- VMDK, VHDX, VDI: Virtuelle Disks konvertieren mit qemu-img für Windows
- Von VMware nach Hyper-V migrieren mit dem Microsoft VM Converter
- Microsoft Virtual Machine Converter: VMs von ESX nach Hyper-V migrieren
- VMware vCenter Converter 6.4 Beta: Support für vSphere 8, Microsoft VBS
- Aus für VMware Converter, Download nicht mehr verfügbar
Weitere Links