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

3 Kommentare

  1. Graf Zahl

    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.

  2. Mav

    Hallo, wollte gerade eine VHDX verkleinern, leider finde ich unter dem Punkt, Datenträger bearbeiten, die Option verkleinern nicht, lediglich Komprimieren, Konvertieren und Erweitern. Hat sich hier ein Fehler eingeschlichen?

  3. andy

    Den Punkt “Verkleinern” gibt es (ab Windows 8 und Server 2012), dieser wird aber nur angezeigt, wenn in der betreffenden VHDX überhaupt Platz zum Verkleinern vorhanden ist.
    Soll heißen: Die in der VHDX vorhandenen Partitionen müssen kleiner sein, als der maximale Speicherplatz der VHDX.
    Darüber hinaus darf keine Partition am Ende der VHDX sein.

    Gerade eben bei einer Test-VM wurde “Verkleinern” ebenfalls zunächst nicht angeboten, ich bin dann wie folgt vorgegangen:

    – VM heruntergefahren
    – VHDX eingehängt
    – die entsprechende Windows-Partition defragmentiert und
    – verkleinert. Da die Windows-Bordmittel (mal wieder) nicht wollten, kam MiniTool Partition Wizard Free zum Einsatz.
    – VHDX ausgehängt
    – den Datenträger-Assi von Hyper-V gestartet und
    – siehe da, “Verkleinern” ist vorhanden und konnte ausgeführt werden.

    Beim zweiten Durchlauf des Datenträger-Assi’s wurde dann “Verkleinern” nicht mehr angezeigt, das passt, da nun kein Platz mehr da ist, auf den weiter verkleinert werden könnte. So bleibt dann, wenn’s weiter um’s verkleinern geht, nur noch Komprimieren übrig.

    Zur Info:

    Screenshots bzw. komplette Anleitung samt Wege via Powershell finden sich hier:

    Windows Pro – VHDX-Laufwerke komprimieren und verkleinern

Schreibe einen Kommentar

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

© 2024 Andy's Blog

Theme von Anders NorénHoch ↑