Hyper-V VM in „Generation 2“ konvertieren

Mit dem Microsoft Hypervisor „Hyper-V“ sind mit der 2012 R2 Version auch neue VM Generationen dazugekommen. Die neuen „Generation 2“ VMs sind offiziell nur für den Einsatz von Windows 8.1 oder Server 2012 R2 als Gastbetriebssystem gedacht. Linux Gen 2 VMs dürfen keinen „Secure Boot“ aktiviert haben. Neben Performancevorteilen und UEFI Boot, lassen sich die Synthetic Netzwerkkarten jetzt auch für einen Netzwerkboot bei Gen 2 VMs nutzen. Die alten „Legacy NICs“ werden also nicht mehr zusätzlich benötigt. Eine weitere Voraussetzung von Generation 2 VMs ist der Einsatz einer virtuellen Festplatte im VHDX Format. Das neuere VHDX Format unterstützt Plattengrößen von bis zu 64TB und ist ein bisschen weniger anfällig für Störungen.
Bereits bestehende Windows 8.1 oder Server 2012 R2 VMs vom Typ Generation 1 lassen sich in eine Generation 2 VM konvertieren. Jedoch geht das nicht, indem die bestehende VHD Platte über den Hyper-V Assistenten in eine VHDX umgewandelt wird und dann damit eine neue Generation 2 VM angelegt wird. Diese neue Maschine würde keinen einzigen Boot schaffen.


Microsoft stellt für eine Migration ein schickes PowerShell Skript zur Verfügung, welches es hier zum Download gibt. http://code.msdn.microsoft.com/windowsdesktop/Convert-VMGeneration-81ddafa2/file/104171/1/Convert-VMGeneration.ps1 Bevor die Konvertierung durchgeführt werden kann, muss auf dem entsprechenden Gast „Windows Recovery“ deaktiviert werden. Dazu wird in einer administrativen Dos Box folgender Befehl ausgeführt.

Hyper-V konvertieren

Danach muss die VM heruntergefahren werden. Über die PowerShell Konsole (administrative Rechte nicht vergessen) wird jetzt das von Microsoft heruntergeladene Skript parametrisiert aufgerufen.

.\Convert-VMGeneration.ps1 -VMName "YOURVM" -Path "C:\Foo\Bar"

Hyper-V konvertieren

Der Vorgang benötigt jetzt erstmal einige Minuten Zeit. Wenn alles fertig ist, taucht die konvertierte Maschine auch als zusätzliche Generation 2 VM im Hyper-V Manager auf.

Hyper-V konvertieren

Wem die Bezeichnung nicht gefällt, kann diese entweder nachträglich im Hyper-V Manager oder direkt im PowerShell Skript anpassen.