Ich werde immer wieder gefragt wie eine Generation 1 VM unter Hyper-V in eine Generation 2 VM konvertiert werden kann. Offiziell ist das nicht möglich:

121715_0952_HyperVGener1

Wenn das Gastbetriebssystem in der zu konvertierenden VM allerdings die Voraussetzungen für einen Generation 2 VM erfüllt:

121715_0952_HyperVGener2

kann in vielen Fällen das Convert-VMGeneration Script von John Howard (Senior Program Manager im Hyper-V Team bei Microsoft) helfen. Das Script ist unter folgendem Link zu finden:

https://code.msdn.microsoft.com/ConvertVMGeneration

Wichtig ist zu erwähnen, dass es weder von Microsoft, noch von John Howard einen Support für dieses Script gibt, d.h. Sie sollten für eine ausreichende Sicherung Ihrer VMs und Ihrer gesamten Umgebung sorgen bevor Sie mit der Konvertierung starten.

Zunächst muss die zu konvertierende VM gestartet werden. Dort muss in einer administrativen Eingabeaufforderung über das Kommando:

reagentc /disable

die Recovery Agent Konsole daktiviert werden:

121715_0952_HyperVGener3

Anschließend muss das Gastbetriebssystem in der VM heruntergefahren werden.

Auf dem Hyper-V Host muss nun ein ein PowerShell Fenster mit administrativen Rechten gestartet werden.

Dort wird über die Eingabe von:

Set-ExecutionPolicy –ExecutionPolicy unrestricted

die Execution policy angepasst:

121715_0952_HyperVGener4

Anschließend kann über die folgende Eingabe der Konvertierungsvorgang gestartet werden:

.\convert-vmgeneration.ps1 -VMName „WS2012R2Gen1″ -Path W:\VMs

In meinem Beispiel wird die VM mit dem Namen „WS2012R2Gen1″ konvertiert und die Generation 2 VM soll unter „W:\VMs“ abgelegt werden:

121715_0952_HyperVGener5

Das Script erstellt eine neue Generation 2 VM welche die Einstellungen der ursprünglichen Generation 1 VM übernimmt. Für die neue Generation 2 VM wird auch eine neue virtuelle Festplatte erstellt. Um die Daten von der virtuellen Festplatte der Generation 1 VM auf die virtuelle Festplatte der Generation 2 VM zu übertragen werden beide virtuellen Festplatten am Host gemountet:

121715_0952_HyperVGener6

Prüfen Sie wie im Output des Konvertierungsscripts angegeben die gemounteten Festplatten am Host-System:

121715_0952_HyperVGener7

In meinem Beispiel wird die Disk 3 komplett überschrieben – deshalb bitte manuell über z.B. die Datenträgerverwaltung prüfen ob das so korrekt ist.

Nachdem mit „Y“ bestätigt wurde arbeitet das Script weiter. Je nach Datenmenge und Storage Durchsatz dauert es nun einige Zeit bis die Konvertierung abgeschlossen ist.

121715_0952_HyperVGener8

Nach Abschluss des Vorgangs gibt es eine neue virtuelle Maschine vom Typ Generation 2 – in meinem Beispiel „WS2012R2Gen1 (Generation 2):

121715_0952_HyperVGener9

Die ursprüngliche Generation 1 VM bleibt erhalten, sollte allerdings nachdem die Generation 2 VM erfolgreich getestet wurde gelöscht werden.

Starten Sie nun die durch die Konvertierung entstandene Generation 2 VM und melden Sie sich an. Öffnen Sie in der VM Konsole eine Eingabeaufforderung und führen Sie folgendes Kommando aus:

reagentc /enable

121715_0952_HyperVGener10