VHDX Anpassungen mit der Windows PowerShell

Wer mal eben eine VM unter Microsoft Hyper-V 3.0 anlegt, der erstellt sie mit einer 127GB dynamisch wachsenden VHDX-Festplatte. Wer dann noch 2 VMs auf einem Notebook ohne SSD benutzt, der merkt recht schnell wie langsam ein System durch Random-IO werden kann. Da mir das gelegentlich passiert, das ich aus Kapazitätsgründen dynamische Datenträger bevorzuge, machte ich mich auf die Suche nach einer einfachen Möglichkeit VHDX Dateien zu bearbeiten. Die Konvertierung kann über die GUI gesteuert werden, eine gezielte Größen Änderung aber nicht. Seit Hyper-V 3.0 hat sich da in der Power Shell was getan, es gibt neue Befehle wie zum Beispiel Resize-VHD und Convert-VHD. Doch damit das funktioniert, muss vorher innerhalb der VM noch der nötige Platz geschaffen werden, das bedeutet die Partitionen müssen entsprechend verkleinert werden.

VHDX Anpassungen mit der Windows PowerShell - 789f36ba9de04e469375ab39392ae879 - 1

VHDX Anpassungen mit der Windows PowerShell - 030713 0650 VHDXAnpassu1 - 2

Nach dem verkleinern sollte die Festplatte so aussehen

VHDX Anpassungen mit der Windows PowerShell - 030713 0650 VHDXAnpassu2 - 3

Nach dem die Partitionen entsprechend verkleinert wurden, bedarf es nur noch ein paar Zeilen PowerShell:

$VHDFILE=“D:VMEX10EX10DC01Virtual Hard DisksEX10DC01.vhdx“

$VHDNEWFILE=“D:VMEX10EX10DC01Virtual Hard DisksEX10DC01-Fixed.vhdx“

Resize-VHD -Path $VHDFILE -SizeByte 60GB

Convert-VHD -Path $VHDFILE -DestinationPath $VHDNEWFILE -VHDType Fixed

Move-Item $VHDNEWFILE $VHDFILE -Force


Dabei sollten die Variablen $VHDFILE und $VHDNEWFILE durch die entsprechenden Werte ersetzt werden (Pfad mit Dateinamen). Wer möchte kann die Quelldatei auch direkt löschen, in dem der Convert-VHD Befehl um ein „-DeleteSource“ erweitert wird, oder wie ich einfach die alte VHDX-Festplatte überschreibt.

VHDX Anpassungen mit der Windows PowerShell - 030713 0650 VHDXAnpassu3 - 4

Der Konvertierungsvorgang braucht einige Zeit, da eine entsprechend große und leere VHDX-Datei erstellt wird und dann die Daten Kopiert werden.

VHDX Anpassungen mit der Windows PowerShell - 030713 0650 VHDXAnpassu4 - 5

Die Anregung für die PowerShell Lösung habe ich durch Thomas Hanrath erhalten, der in seinem Blog eine Lösung beschrieben hat, um VHD Dateien zu verkleinern mit Hyper-V 3.0 und der PowerShell.

1 Gedanke zu „VHDX Anpassungen mit der Windows PowerShell“

Kommentare sind geschlossen.