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.
Nach dem verkleinern sollte die Festplatte so aussehen
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.
Der Konvertierungsvorgang braucht einige Zeit, da eine entsprechend große und leere VHDX-Datei erstellt wird und dann die Daten Kopiert werden.
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.
Kommentare
Eine Antwort zu „VHDX Anpassungen mit der Windows PowerShell“
#VHDX … – von Fabian Niesen – http://t.co/zySzMzlDQR – #HyperV #MicrosoftWindows8 #MSWindowsServer2012 #RandomIO – Wer …