Shrinken von VMDKs ist schön. Nur wann fällt Dir auf, dass eine VMDK mal wieder Eisberggröße angenommen hat ? Genau, wenn Du sie eben heruntergefahren hast. Und genau weißt, der ganze Müll darin steht immer noch drin, und wird beim Shrinken natürlich auch erhalten bleiben. Wieder starten willst Du Sie aber auch nicht. Ausweg:
- VMDK mounten
- Ausmisten
- VMDK unmounten
- Shrinken
1) VMWare Virtual Disk Development Kit von VMWare runterladen, wenn nicht sowieso schon längst getan.
Nu ist mounten über die shell die Pest, weil die Pfade wirklich hässlich sind und ständig Hochkommata erfordern. Mounten über das Explorer-Kontextmenü ist irgendwie eleganter.
2a) In ein cmd-File „mount.cmd“, Pfad ggf. anpassen, Laufwerksbuchstaben ggf. anpassen:
„%ProgramFiles(x86)%\VMware\VMware Virtual Disk Development Kit\bin\vmware-mount.exe“ Y: /d /f >nul „%ProgramFiles(x86)%\VMware\VMware Virtual Disk Development Kit\bin\vmware-mount.exe“ Y: %1
(erst unmounten was ggf. gemountet sein könnte, dann mounten)
2b) In ein cmd-File „unmount.cmd“, Pfad ggf. anpassen, Laufwerksbuchstaben ggf. anpassen:
„%ProgramFiles(x86)%\VMware\VMware Virtual Disk Development Kit\bin\vmware-mount.exe“ Y: /d /f >nul
Das verankern wir im Kontextmenü des Explorers für VMDKs:
3) In ein machwas.reg-File, Pfade vorher anpassen, doppelte backslashs für Verzeichnisse nicht vergessen:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\.vmdk]
@=“VMware.VirtualDisk“
[HKEY_CLASSES_ROOT\VMware.VirtualDisk\shell]
@=“Mount“
[HKEY_CLASSES_ROOT\VMware.VirtualDisk\shell\Mount]
@=“Mount“
[HKEY_CLASSES_ROOT\VMware.VirtualDisk\shell\Mount\command]
@=“E:\\VMs\\Mount\\mount.cmd \“%1\““
[HKEY_CLASSES_ROOT\VMware.VirtualDisk\shell\Unmount]
@=“Unmount“
[HKEY_CLASSES_ROOT\VMware.VirtualDisk\shell\Unmount\command]
@=“E:\\VMs\\Mount\\unmount.cmd“
4) reg-File ausführen, admin zu sein wäre dafür vielleicht hilfreich, ich weiß es nicht, ich bin es.
Ab jetzt gibt es für VMDKs im Kontextmenü Einträge zum Mounten/Unmounten.
5) Den ganzen temporären Kram in der gemounteten VMDK abräumen, der sie auf Eisberggröße aufgeblasen hat (hier: Anlagendumps mit >5GB pro Stück, die SSD hat nur noch gerülpst und gesagt ‚hey ich bin satt, ich mag jetzt nicht mehr‘).
6) Die ganzen VMDKs in einem Verzeichnis shrinken, und zwar richtig, nicht nur das halbgare shrinken aus der Oberfläche heraus: In ein shrink.cmd:
@echo off
for /F „tokens=* delims=“ %%f in (‚dir /S /B *.vmdk‘) do call :Shrink %%f
:Shrink
REM %%a wird zu %1
echo %1
REM unmounten
call „%ProgramFiles(x86)%\VMware\VMware Virtual Disk Development Kit\bin\vmware-mount.exe“ Y: /d /f
REM mounten
call „%ProgramFiles(x86)%\VMware\VMware Virtual Disk Development Kit\bin\vmware-mount.exe“ Y: „%1“
REM vorbereiten für shrink durch wipen
call „%ProgramFiles(x86)%\VMware\VMware Workstation\vmware-vdiskmanager“ -p Y:
REM unmounten
call „%ProgramFiles(x86)%\VMware\VMware Virtual Disk Development Kit\bin\vmware-mount.exe“ Y: /d /f
REM shrinken
call „%ProgramFiles(x86)%\VMware\VMware Workstation\vmware-vdiskmanager“ -k „%1“
REM warten wegen Laufwerksbuchsteben
call ping -n 5 127.0.0.1
goto :eof
Michael, Du hast Deine Büchse, Deine VMs, Deine Beziehung, Dein Ego ruiniert beim Versuch, mit Hilfe dieser Zeilen etwas zu reparieren ? TLSSBYAAI. Aber Du wolltest es unbedingt wissen. Und Du hast Sicherungen, ich weiß das. Du schuldest mir ein weiteres Bier. Gern geschehen.