Windows/Hyper-V: VHDX verkleinern

Um eine virtuelle Festplatte im Microsoft VHDX-Format zu verkleinern bedarf es ein wenig Vorbereitung und ein paar Schritte.

Vorab-Bemerkung

Die einzelnen Vorgänge können je nach Größe, Hardware und Auslastung durchaus mehrere Stunden in Anspruch nehmen. Von daher sollte ein entsprechendes Zeitfenster mit Bedacht gewählt werden. Zudem empfiehlt es sich, vorab einen Testlauf mit einer Kopie oder aus einer Datensicherung heraus durchzuführen.

Datensicherung erstellen

Bevor man zu Tate schreitet, unbedingt eine Datensicherung erstellen, für den Fall das etwas schief läuft!

Defragmentierung durchführen

Vor dem verkleinern einer Partition bzw. einer *.vhdx sollte deren Inhalt defragmentiert werden. Das geht Online mit Bordmitteln, meist ist das Ergebnis allerdings Offline besser. Eine vorangehende Defragmentierung verhindert meist die Meldung beim Verkleinern der Partition, das nicht genügend Speicherplatz zur Verfügung stände oder, am Beispiel von Macronit Disk Partition Expert, eine Meldung erscheint, das es zuviele Fragmente gibt.

Bemerkung: Mit On-/Offline ist gemeint, ob der virtuelle Computer läuft oder nicht bzw. die VHDX verwendet wird oder nicht.

Partition verkleinern

Die Partition kann Online mit Bordmitteln von Windows verkleinert werden. Wenn’s nicht klappt, weil beispielsweise (immer noch trotz Defragmentierung) gemeckert wird, das nicht genügend Speicherplatz vorhanden wäre, dann Offline mit einem entsprechenden Partitionierer (z.B. Macrorit Disk Partition Expert, MiniTool Partition Wizard, etc.) arbeiten. Unter Hyper-V kann man z.B. einen virtuellen Computer der 1. Generation mit GParted Live starten und dann die Partition verkleinern. Letzteres hat bislang immer, selbst bei widerspenstigen Partitionen, erfolgreich funktioniert und ist gegenüber den Windows-Mitteln dank Schieberegler (imho) angenehmer.

VHDX verkleinern – Schritt 1

Damit der freie zur Verfügung stehende Speicherplatz innerhalb der VHDX reduziert wird, wird dieser wie folgt verringert:

  • Im „Hyper-V Manager“ auf „Datenträger bearbeiten…“ klicken.
  • Die gewünschte VHDX auswählen.
  • „Verkleinern“ auswählen und auf der Folgeseite die neue Größe angeben.

Dieser Schritt ändert allerdings (noch) nicht die Größe der Datei auf der Festplatte! Siehe dazu Schritt 2

VHDX verkleinern – Schritt 2

Spielt die physikalische Größe, also der belegte Speicherplatz, der *.vhdx keine Rolle, kann dieser Schritt übersprungen werden. Soll allerdings die Datei real verkleinert werden, so muss eine Komprimierung durchgeführt werden.

  • Im „Hyper-V Manager“ auf „Datenträger bearbeiten…“ klicken.
  • Die gewünschte VHDX auswählen.
  • „Komprimieren“ auswählen.

Abschlussbemerkung

Die einzelnen Vorgänge lassen sich per Skript (Powershell) vornehmen, siehe dazu die entsprechende Dokumentation und die Quellen.

Quellen:

Ben Armstrong’s Virtualization Blog – Shrinking a VHDX on a Running Virtual Machine

Dixin’s Blog – Shrink Virtual Hard Disk Image (VHD and VHDX) Files

Ein Gedanke zu „Windows/Hyper-V: VHDX verkleinern

  1. Ich führe ebenfalls alle paar Monate eine Komprimierung von VMs durch.
    Allerdings ändere ich nicht die Größe der virtuellen HDD, sondern stauche sie nur zusammen.
    Ich möchte also nur unnötigen Ballast loswerden.

    Dazu lösche ich erst online (also in der laufenden VM) alles was weg kann.
    Auch ein ‚administrativer‘ CleanDisk trägt dazu bei.
    Dann wird ebenfalls online defragmentiert und mit dem SystemInternals-Tool Sdelete v1.6 (v2.0 macht Probleme) der nun freie Platz auf der VDisk ‚genullt‘.
    Der letzte Schritt ist wichtig, damit die anschließende Offline-Komprimierung der vhd(x) möglichst effektiv ist.

Schreibe einen Kommentar

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