Virtuelle Festplatten ohne VMWare Tools verkleinern

Da ich sehr viel mit VMWare in virtualisierten Umgebungen arbeite kam ich irgendwann zu dem Punkt an dem ich die virtuelle Festplatte einer virtuellen Maschine verkleinern wollte ohne…

…die im Gast installierten VMWare Tools zu bemühen und ohne…

…die virtuelle Maschine zu starten.

Mit Hilfe des vmware-vdiskmanager.exe habe ich mir eine kleine Stapeldatei ShrinkVM.cmd erstellt, die die notwendigen Schritte der Reihe nach ausführt.

::
SET DISK=ha-node01.vmdk
::
SET VMDM=bin\vmware-vdiskmanager.exe
::
::
ECHO **** Defragmentiere %DISK% ...
"%VMDM%" -d "%DISK%"
::
ECHO **** Verkleinere %DISK%...
"%VMDM%" -k "%DISK%"
::
PAUSE

%DISK%

In dieser Umgebungsvariablen habe ich mir den Dateinamen für die virtuelle Festplatte gespeichert.

%VMDM%

In dieser Umgebungsvariablen wird der Pfad auf die Programmdatei von vmware-vdiskmanager.exe gespeichert. Die Datei habe ich mir aus dem Ordner C:\Programme\VMware\VMware Server\vmware-vdiskmanager.exe einer VMWare Server installation geholt und im Ordner bin unterhalb des Verzeichnises mit der virtuellen Maschine abgelegt.

Damit das Programm ohne Fehler startet werden insgesamt folgende Dateien benötigt:

    vmware-vdiskmanager.exe
    libeay32.dll
    ssleay32.dll

Die Stapeldatei liegt im Ordner in dem auch die Dateien der virtuellen Maschine liegen.

Am Schluss sorgt noch ein Aufruf von PAUSE dafür, dass das Kommandozeilenfenster nicht geschlossen wird. Sollte es zu Fehlern gekommen sein, dann kann ich diese noch sehen.

console-shrink

Ein Wermutstropfen bleibt.

Zwischen dem Schritt „Defrag“ (Option -d) und „Shrink“ (Option -k) müsste eigentlich noch der Schritt „Prepare“ (Option -p) eingefügt werden.

Das Vorbereiten der virtuellen Festplatte mit der Programmoption -p geht noch nicht. Damit dies klappt muss die Festplatte und deren Inhalt als Laufwerk zur Verfügung stehen. Dazu benötigt man das VMWare DiskMount Utility und zusätzlich ein bischen Grips, da nicht die gesamte Festplatte „gemountet“ wird sondern Partitionen der Platte. Diese Option werde ich in einer späteren Version mit einbeziehen.

Schreibe einen Kommentar

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