VHD-Dateien vergrößern oder verkleinern

Microsofts Dateiformat für virtuelle Datenträger gibt vom Typ fixed, der von Anfang an die maximale Größe hat, und vom Typ expandable, der mit dem darin gespeicherten Datenvolumen mitwächst. Sowohl thick als thin Provisioning hat Vor- und Nachteile. Allerdings kann man entgegen des ersten Eindrucks bei beiden VHD-Varianten die Größe der virtuellen Datenträger verändern.

Fixe VHD vergrößern

Bei statischen bzw. fixed VHDs legt die Bezeichnung die Interpretation nahe, dass sie nach der anfänglichen Festlegung der Größe nicht mehr verändert werden kann. Das ist aber nicht der Fall, sie kann nachträglich vergrößert werden, wenn die darin enthaltenen Volumes volllaufen. Zu diesem Zweck benötigt man das Kommandozeilenprogramm diskpart. Im ersten Schritt wählt man die betreffende VHD aus:

select vdisk file="LW:\Pfad\Dateiname.vhd"

Danach muss man sicherstellen, dass die VHD getrennt ist. Dies erreicht man mit dem Befehl detach. Die neue absolute Größe legt man anschließend mit

expand vdisk maximum=<MB>

fest. Dieses Verfahren funktioniert auch mit dynamischen VHDs, allerdings wird dort nur der Wert für die maximale Größe hochgesetzt, ohne dass sie diese im Gegensatz zur fixen VHD diesen nicht sofort i Beschlag nimmt.

Schließlich ist es bei fixen VHDs noch erforderlich, dass die in ihnen enthaltenen Volumes den hinzugewonnenen Platz ausnutzen können. Um ein Volume zu vergrößern, muss man die VHD mit dem Befehl attach wieder mounten. Ist die virtuelle Festplatte angehängt, dann lässt man sich die vorhandenen Volumes anzeigen und wählt das betreffende aus:

list volume
select volume=<Nummer oder Laufwerksbuchstabe>

Zum Schluss vergrößert man das Volume mit

extend size=<MB>

Zu beachten ist dabei, dass diskpart bei den Größenangaben inkonsistent ist. Während die neue Größe der VHD absolut angegeben werden muss, ist bei der Ausdehnung eines Volumes der zusätzliche Speicherplatz in MB gefragt.

Wachstum einer dynamischen VHD kontrollieren

Während der Platz in einer fixen VHD mit andauernder Nutzung knapp und daher eine Vergrößerung notwendig werden kann, ist die Situation bei einer dynamischen VHD genau umgekehrt. Hier tritt eher der Fall ein, dass sie ständig automatisch expandiert, bis sie den gesamten Plattenplatz verbraucht. Hier geht es also darum, das ungezügelte Wachstum zu bremsen.

diskpart kann mit dem compact-Befehl freien VHD-Platz freigebenWenn Dateien gelöscht werden, dann bleibt der frei gewordene Speicherplatz durch die VHD belegt. Weder Virtual PC oder Hyper-V noch Windows 7 bei VHD Boot kompaktieren die VHD automatisch, vielmehr fragmentiert sie wie ein Dateisystem. Vielmehr ist hier die Intervention des Administrators erforderlich, entweder mit dem Hyper-V-Manager oder erneut mit diskpart:

compact vdisk

Zu beachten ist hier, dass die VHD nicht oder im Nur-Lese-Modus gemountet sein sollte. Wie in den vorigen Beispielen muss sie erst mit Hilfe des select-Befehls ausgewählt werden.

Der compact-Befehl lässt sich auf fixe VHDs nicht anwenden. Soll ein solcher statischer virtueller Datenträger verkleinert werden, dann besteht die Möglichkeit, eine kleinere VHD anzulegen und den Inhalt des alten Datenträgers dorthin umzukopieren.

2 Kommentare

Bild von Gilu
Gilu (Besucher) sagt:

Vielen Dank!

Nur musste ich den Befehl extend size=100 so lange wiederholen, bis die Partition vollständig erweitert war. Null oder Eins war keine 'gültige' Eingabe.

Dank nochmals!

Bild von Djeddal
Djeddal (Besucher) sagt:

Nac dem "expand" Befehl und deren Ausführung und danach das mounten mit dem "attach" Befehl ist die vhd schon erweitert. Mit der Konsoleneingabe treten tatsächlich öfters Probleme auf, wenn man den mit dem "expand" Befehl erweiterten Speicher in die vhd nutzbar einfügen will. Dabei wird ein Fehler gemeldet, dass für die Erweiterung kein genügender Speicherplatz zur Vergung steht. Nun kann man in der Konsole den erweiterten Platz in kleinen Schritten zwar anfügen aber es geht auch leichter und einfcaher und vor allem viel schneller.
Und zwar:
Diese Lösung geht nur bei laufendem Windows und geäffneter Konsole (das ist der sog. "cmd")
Nachdem man in der Konsole bis zum "attach" Befehl wie oben beschrieben gekommen ist, kann man in der Windows Datenträgerverwaltung die vhd ohne Probleme um den zusätzlichen vollständigen Speicherplatz vergrößern. Dazu reicht ein Rechtsklick auf die Datei.

Kommentar hinzufügen

Der Inhalt dieses Feldes wird nicht angezeigt. Wenn mit Ihrer angegebenen Mail-Adresse ein Gravatar verknüpft ist, dann wird dieser neben Ihrem Kommentar eingeblendet.
  • Internet- und E-Mail-Adressen werden automatisch umgewandelt.
  • Zulässige HTML-Tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Zeilen und Absätze werden automatisch erzeugt.
  • Mail-Adressen werden im Seitenquelltext unkenntlich gemacht, um sie vor dem automatischen Erfassen durch Spammer zu schützen.

Weitere Informationen über Formatierungsoptionen