Nachdem wir eine virtuelle Maschine anhand eines Backups eines bestehenden Windows Rechners erstellt und in Hyper-V importiert haben, machen wir uns nun an die Optimierung.

Optimierung in der Hinsicht, dass die virtuelle Maschine aufgrund eines lizenzierten Programmes erstellt wurde, das man auch weiterhin in diesem virtuellen Gastsystem nutzen möchte. Dazu sind aber viele andere Installationen auf dem Gastsystem überflüssig. Auch viele Dateien können wir entfernen, um die benötigte Festplattenkapazität zu reduzieren.

Die Festplatte wurde bereits von 120 GB auf ca. 50 GB reduziert. Im Folgenden sehen wir die Verkleinerung auf etwa 30 GB. Womit die Größe der virtuellen Festplatte, also die VHDX-Datei gemeint ist.


Voraussetzungen wie in diesem Beispiel:

Tipp: Legen Sie Sicherheitskopien Ihrer VHD-Dateien an, bevor Sie fortfahren.


Zunächst starten wir das Gastsystem und die Datenträgerverwaltung.

Wie man sieht, befindet sich am Ende der Festplatte eine Partition, die sich auch nach Reduzierung der dazwischen liegenden Partition nicht mit der Windows Datenträgerverwaltung verschieben ließe.

Wir könnten sie einfach löschen, da es sich allenfalls um eine Recovery-Partition des OEM-Herstellers handelt.

Stattdessen werden wir beispielhaft, mithilfe AOMEI Partition Assistent Standard Edition die Partition verschieben.

Nach dem Anwenden der Änderungen und einem Neustart …

… ergibt sich folgendes Bild:

Dies diente zur Demonstration, wie man Partitionen eines Windows-Systems dennoch verschieben kann.

Wir können diese, unbenutzte Partition nun löschen und machen uns an die Verkleinerung der zugehörigen Virtuellen Festplatte, die im Moment noch folgende Größe aufweist.

Dazu starten wir die powershell mit Administrativen Rechten.

Zwei Befehle werden wir brauchen, die wir auf dem Host-System ausführen:


Resize-VHD -Path .\*.vhdx -ToMinimumSize

Hiermit wird die Festplatte innerhalb des Hostsystems der virtuellen Festplatte/VHDX-Datei verkleinert

Wie in dem vorangegangenen Beitrag, lassen sich nur dynamische virtuelle Datenträger auf diese Weise behandeln. Daher die Variable in folgendem Befehl

Get-VHD *.vhdx | where {$_.VhdType -eq “Dynamic”} | Optimize-VHD -mode full

Hiermit wird die virtuelle Festplatte/VHDX-Datei auf dem Gast-System verkleinert

Im Anschluss führen wir Befehl 2 aus:

Sollte alles glatt laufen, fragen wir die Eigenschaften der bearbeiteten VHD mit einem einfachen “get-” ab

und sehen, dass wir nun eine VHDX-Datei haben, die in etwa der Größe der Festplatten des Gastsystems entspricht.

Sollte jedoch folgende Fehlermeldung auftauchen

hilft es, mit folgendem Befehl das Zielvolumen zunächst manuell festzulegen und bis hin zu einem fixen Wert zu verkleinern. Dabei wählen wir einen Wert kleiner als die tatsächliche Größe der VHD-Datei und größer als die Summe der Partitionen des Gastsystems in Bytes, bzw. in diesem Fall auch möglich:

Resize-VHD -Path .\*.vhdx -SizeBytes 40000MB

Anschließend führen wir den Befehl mit dem Parameter “ToMinimumSize” erneut aus und kommen schließlich zu dem gewünschten Ergebnis, welches wieder innerhalb des Gastsystems abzulesen ist.

So konnten wir seit Erstellung des Backups eines hardware-basierten Computers, über die Konvertierung zu einer virtuellen Maschine, bis hin zur Verkleinerung des virtuellen Datenträgers, nachträglich etwa 90 GB gegenüber der initialen VHD-Datei einsparen.