VirtualBox VDI - Festplatte verkleinern/reduzieren
Host und Gast: Windows

Erstellt am:13.12.2020 Aktualisiert am:-

VirtualBox-Festplatten blähen sich mit der Zeit auf. Das liegt daran, weil der Virtual-Machine-Monitor beim löschen von Dateien, den virtuellen Datenträger nicht automatisch verkleinert. Das hat einen nützlichen Hintergrund. Kurz gesagt, verhindert dies häufige Zugriffe auf die Festplatte. Trotzdem ist es möglich virtuelle Festplatten (VDI,VMDK,VHD) zu verkleinern. Dazu stellt VBox entsprechende Tools zur Verfügung. In dieser Anleitung erfährst du, wie du unter Windows ein Windows-Gast (VDI Datenträger) reduzieren bzw. verkleinern kannst.

Ablauf - zusammengefasst

Der Ablauf ist relativ einfach und kann in zwei Vorgänge aufgeteilt werden.

Vorgang 1:
Als erstes müssen auf dem Gast-System ungenutzte Blöcke ohne Null-Inhalt gesucht und mit Nullen gefüllt werden, da nur Null-Blöcke, über Vorgang 2 entfernt werden können. Dies wird mit dem Microsoft Programm SDelete (Secure Delete) auf dem Gast-System (Windows) durchgeführt.

Exkurs:
Durch Löschung von Dateien entstehen nicht genutzte Blöcke, da dabei keine echte Löschung erfolgt. Stattdessen erhalten diese Blöcke nur den Status "frei". Das hat den Vorteil, dass damit häufige Schreibzugriffe auf die Festplatte vermieden werden, was der Lebensdauer der Festplatte zugute kommt.

Vorgang 2:
Über Vorgang 2 und das Windows Programm VBoxManage.exe erfolgt die Entfernung der durch Vorgang 1 gefüllten Null-Blöcke, und damit die tatsächliche Verkleinerung der VDI-Festplatte.

Der Ablauf im Detail

1.0 Vorab - Gast-System (Windows) bereinigen

Es macht Sinn, das Gast-System vorher von unnötigen Dateien und Programmen zu bereinigen, d.h. Dateien aus z.B. dem Downloadordner zu löschen oder unnötige Programme zu deinstallieren, Papierkorb leeren usw.

1.1 Windows Tool SDelete - installieren

Auf dem Windows Gast-System muss das Microsoft Windows eigene Programm SDelete heruntergeladen (Download) und entpackt werden.

1.2 SDelete - ausführen

Öffne nun auf dem Gast-System die Powershell (oder cmd.exe) und navigiere zum SDelete Verzeichnis.

Tipp: Drücke [Shift] + [rechte Maustaste] im SDelete-Verzeichnis und klicke dann auf "PowerShell-Fenster hier öffnen" um die PowerShell direkt im entsprechendem Verzeichnis zu öffnen.

Gebe anschließend folgenden Befehl in der PowerShell ein, um den ersten Vorgang abzuschließen.
Beachte: Für 32-bit Systeme sdelete.exe zu nutzen. Im Normallfall benutzen alle Windowsuser Windows 64Bit (Systemtyp). Zum öffnen der Systeminformationen drücke: [Windows-LogoTaste] + [Pause].

$ sdelete64.exe c: -z

Die Durchführung sieht folgendermaßen aus.
Bei einer Festplattengröße von ca. 30 GB dauert dieser Vorgang etwa 5 Minuten (Animation ist beschleunigt):

2.1 VBoxManage anwenden - VDI-Datei verkleinern

Nun folgt der abschließende Teil. Hier wird die VDI-Datei, d.h. die VDI-Festplatte tatsächlich verkleinert.

Öffne auf dem Host die Windows PowerShell und navigieren zur VDI-Datei. Gebe nun den folgenden Befehl in der PowerShell ein, um die Reduziertung/Verkleinerung der VDI-Datei zu starten. Wichtig: Das &-Zeichen muss am Anfang eingegeben werden. Das $-Zeichen nicht.

$ & 'C:\Program Files\Oracle\VirtualBox\VBoxManage.exe' modifymedium disk '.\Windows 10.VDI' --compact

Bei einer ~31 GB großen VDI-Festplatte dauert dieser Vorgang etwa 5 Minuten. Das Ergebnis sollte wie folgt aussehen:

Das war's, die VDI-Datei/Festplatte ist nun erfolgreich verkleinert bzw. reduziert worden.
Das Ergebnis sieht wie folgt aus:

Vorher - 31 GB
Nachher - 11 GB