Wiederherstellen einer nicht exportierten VM

Vieleicht kennen Sie dieses Problem. Ein Hyper-V Host ist plötzlich durch einen Defekt funktionsuntüchtig und startet nicht mehr. Die Virtuellen Maschinen waren zu diesem Zeitpunkt produktiv im Einsatz.

Genau dieses Problem ist bei einem Hyper-V Server aufgetreten.
Das Betriebssystem (Windows Server 2008 R2 SP1) musste neu aufgespielt werden und die virtuellen Maschinen wurden aus einer Festplattensicherung an den ursprünglichen Ort (D:\Virtuelle Maschinen) zurückgespielt.

Nun stand ich aber vor einem weiteren großen Problem. Zwar wurde die Festplattensicherung erst kurz vorher erstellt, aber die VMs lagen nicht in exportierter Form vor.
Dies bedeutet, dass ich die VMs nicht in den Hyper-V Manager importieren konnte. Es fehlte die benötigte “config.xml” Datei, die bei einem Export automatisch angelegt wird.

Nun ist es ja in Hyper-V möglich, eine neue Maschine zu erstellen und die wiederhergestellte Festplatte (VHD) dort anzufügen. Leider geht bei dieser Methode die Konfiguration verloren. Auch wird einen neue “Eindeutige-ID” erstellt, weshalb die Maschine wieder aktiviert werden muss.

Doch gibt es auch eine andere Möglichkeit, mit der man diese Probleme umgehen kann.
Wie das geht, möchte ich in diesem Beitrag erläutern.

       

Ausgangslage:

Neuinstallierter Windows Server 2008 R2 Sp1 mit aktivierter Hyper-V Rolle.
Ein Ordner “D:\Virtuelle Maschinen” mit den wiederhergestellten virtuellen Maschinen.
In diesem Ordner liegen die Dateien von VM5 (Hier die Ordnerstruktur von VM5).

image

Import von VM5 in den Hyper-V Manager nicht möglich, da kein Export vorhanden ist.

image

Schritt 1:

Beim Erstellen einer virtuellen Maschine wird eine spezielle Verknüpfung zur Konfigurationsdatei (.xml Datei)  angelegt, durch die der Hypervisor “bemerkt”, dass eine VM vorhanden ist. Nur wenn diese Verknüpfung existiert, wird die VM im Hyper-V Manager angezeigt.
Die Verknüpfungsdateien liegen standardmäßig in folgendem Ordner:

C:\ProgramData\Microsoft\Windows\Hyper-V\Virtual Machines

(HINWEIS: Der Ordner ProgramData ist versteckt)

 

Da wir keine Verknüpfung haben, müssen wir uns zuerst eine Neue erstellen.
Dazu brauchen wir folgende Werte:

Erstens die VM GUID:

Diese finden wir im Ordner der VM unter “Virtual Machines”. Es ist der Name der XML-Datei. In unserem Fall liegt diese hier “D:\Virtuelle Maschinen\VM5\Virtual Machines” und heißt
81A037E8-734E-4E09-881A-DF0D469699CF

image

Zweitens den Pfad:

Der Pfad zur XML-Datei ist in unserem Fall:

D:\Virtuelle Maschinen\VM5\Virtual Machines\
81A037E8-734E-4E09-881A-DF0D469699CF.xml

 

Jetzt erstellen wir eine Textdatei mit folgendem Inhalt:

mklink "%systemdrive%\programdata\Microsoft\Windows\Hyper-V\Virtual Machines\GUID-DER-VM.xml" "PFAD ZUR XML"

So sieht es dann bei uns aus:

mklink "%systemdrive%\programdata\Microsoft\Windows\Hyper-V\Virtual Machines\81A037E8-734E-4E09-881A-DF0D469699CF.xml" "D:\Virtuelle Maschinen\VM5\Virtual Machines\81A037E8-734E-4E09-881A-DF0D469699CF.xml"

 

Diesen Befehl kopieren wir danach in ein administratives CMD Fenster oder führen es in einer Batch Datei aus.
Daraufhin sehen wir in “ C:\ProgramData\Microsoft\Windows\Hyper-V\Virtual Machines” eine neue XML-Datei.

image

 

Schritt 2:

Mit einem Rechtsklick gehen wir in “Eigenschaften”.
Im Reiter “Sicherheit” klicken wir auf “Bearbeiten” und fügen den Benutzer “Jeder” hinzu. Diesem geben wir “Vollzugriff”.

image

Schritt 3:

Falls in der VM ein Snapshot vorhanden sein sollte, müssen wir diesem auch auf oben genannte Weise verlinken. Dazu gehen wir im Ordner der VM (D:/Virtuelle Maschinen/VM5) auf “Snapshots” und kopieren uns die Snapshot GUID heraus.

image

Wir erstellen uns wieder eine neue Textdatei und fügen dort folgenden Befehl ein:

mklink "%systemdrive%\ProgramData\Microsoft\Windows\Hyper-V\Snapshots\GUID-DES-SNAPSHOTS.xml" "PFAD-ZUM-SNAPSHOT"

 

So sieht es bei uns aus:

mklink "%systemdrive%\ProgramData\Microsoft\Windows\Hyper-V\Snapshots\F1CE6ACF-078A-4D8C-949C-F969E1B722F4.xml" "D:\Virtuelle Maschinen\VM5\Snapshots\F1CE6ACF-078A-4D8C-949C-F969E1B722F4.xml"

 

Wir führen wir den Befehl unter Administratorberechtigungen aus, wechseln in “C:\ProgramData\Microsoft\Windows\Hyper-V\Snapshots” und setzen die Zugriffsrechte der XML-Datei für “Jeder” auf “Vollzugriff”.

image

 

Schritt 3 wiederholen wir für jeden Snapshot.

ACHTUNG: Es kann allerdings vorkommen, dass die Snapshots im Hyper-V Manager nicht angezeigt werden. Das bedeutet, dass auf ältere Snapshots nicht zurückgegriffen werden kann. In meinem Fall wurde nach einem Export und erneutem Import (Siehe Schritt 5) die verbliebene AVHD automatisch mit der VHD zusammengeführt, sodass ich die VM trotzdem normal weiter nutzen konnte.

 

Schritt 4:

Nun öffnen wir die Diensteverwaltung (Start –> Verwaltung –> Dienste), suchen nach “Hyper-V-Verwaltung für virtuelle Computer” (vmms) und starten den Dienst neu.

image

 

Schritt 5:

Jetzt sehen wir unsere VM und den Snapshot wieder im Manager. Jetzt müssen noch eventuell die Netzwerkadapter angepasst werden.
Zwar ist unsere Konfiguration wieder da, aber so ist es noch nicht optimal.
Wir sollten jetzt noch zum Abschluss einen sauberen Export durchführen.

image
Wenn alles exportiert ist, löschen wir die VM aus dem Hyper-V Manager und entfernen die Dateien/Ordner der virtuellen Maschine im Ordner “D:/Virtuelle Maschinen”

Schritt 6:

Zum Schluss importieren wir die VM wie gewohnt und können wieder normal damit arbeiten, ohne die Konfiguration neu erstellen oder die VM erneut aktivieren zu müssen.

admin
 

Comments are closed