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,

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.

No votes yet.
Please wait...

Autor: Fabian Niesen

Fabian Niesen ist seit Jahren beruflich als IT-Consultant unterwegs und arbeitet bei der steep GmbH in Bonn. Unter anderem ist er Zertifiziert als MCSA Windows Server 2008 / 2012, MCSA Office 365, MCSE Messaging, MCT und Novell Certified Linux Administrator. Seine Hobby’s sind Social Media, Bloggen, Mittelaltermärkte und Historische Lieder.

Ein Gedanke zu „VHDX Anpassungen mit der Windows PowerShell“

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.