Seite 1 von 1

Shrink mit VMWare 9 möglich, wie?

Verfasst: 24.11.2012, 13:34
von RTAQ
Hallo,

wie kann ich in VMWare 9 nun shrinken? Also das Image verkleinern lassen? Das VMTool bietet nur mehr eine About-Anzeige.

Verfasst: 24.11.2012, 16:17
von Dayworker
Schritt 1:
Lad dir sdelete von Sysinternals runter und entpacke das Tool ins System32-Verzeichnis deines Win-Gasts.
Dann schreibst du dir eine Batch-Datei mit folgendem Inhalt:

Code: Alles auswählen

"%systemroot%\system32\cmd.exe" /c "%systemroot%\system32\sdelete.exe -z c:"
Der Parameter "z" nullt dann als gelöscht markierte Dateisystembereiche (Dateien und Ordnern) aus.
Je nach Tool-Version mußt du aber aufgrund eines Bugs hinter die Laufwerksbezeichnung einen doppelten Doppelpunkt setzen. Obiges Beispiel lautet somit: "sdelete -z c::".

Für Linux brauchst du kein externes Tool dafür. Ulli hat im Thread Files einer Disc viel zu groß, Shrink, defrag... beschrieben, wie man das macht.
Ich nehm dazu immer eine Live-CD wie gparted, da Linux und Windows manchmal recht eingeschnappt auf ein komplett volles Startlaufwerk reagieren und dann zu Abstürzen neigen. Wie man mit "gparted" arbeitet, habe ich im Thread HowTo - Nachträgliches Alignment auf Sektor 2048 beschrieben. Allerdings braucht man nur die Console und nutzt die Partitionsanwendung nur zur Feststellung der Laufwerksbezeichnung. Dabei sind "sda1-4" immer Primäre und ab "sda5" werden Logische Laufwerke in den Erweiterten Partitionen bezeichnet. Wie unter Linux üblich, braucht es zum Mounten und andere Dinge "volle Rechte" (root). Einige Distros wie Suse gestatten immer noch die Anmeldung als "root", der grössere Teil nutzt jedoch aus Sicherheitsgründen inzwischen "sudo" oder "su". Für Debian basierte Distros ist "sudo" das Mittel der Wahl, um Befehle als "root" auszuführen. Hier mein Weg unter "gparted" (Debian):
  1. sudo mount /dev/sda1 /media (mountet die erste Partition nach /media)
  2. cd /media (springt in Media-Verzeichnis und somit in die dort vorher eingehängt erste Partition)
  3. sudo dd if=/dev/zero of=0bits bs=20971520 (beschreibt die unter "/media" eingehängte Partition mit 20MiB-Blöcken komplett voll)
  4. sudo rm 0bits (löscht die Datei "0bits" wieder)
  5. VM beenden (Rechtsklick in den Desktop und "Exit" wählen)

Schritt 2:
Jetzt mußt du auf dem Host nur noch die abgeschaltete VM "shrinken". Die Syntax dafür lautet:

Code: Alles auswählen

vmware-vdiskmanager -k meineDisk.vmdk



PS: Du kannst zum Shrinken einer Win-VM auch jedes aktuelle Live-Linux nutzen. Diese bringen inzwischen alle Unterstützung für das NTFS-Dateisystem mit. An der für Linux beschriebenen Syntax ändert sich dabei nichts. ;)

Verfasst: 24.11.2012, 17:50
von stefan.becker
Langsam versteh ich den Ulli. Jede Version ist ein Downgrade.

Wer ist denn für den Quatsch verantwortlich? Das war im Vergleich zu VirtualBox noch einer der wenigen Vorteile. Obwohl es dort mit CloneVDI ein geniales Tool dafür gibt.

Zu Beginn startete man bei VBOX auch diesen sdelete Krempel. Dauerte Stunden und war kompliziert bis zum Anschlag.

Ich muss noch mal die Option "compress" bei den Gasteinstellungen testen. Mal sehen, wie das wirkt. Ist aber vermutlich nix anderes als Schritt 2).

Verfasst: 24.11.2012, 20:21
von stefan.becker
Die Option im Menü bringt etwas mehr als nichts, nämlich gar nichts.

Verfasst: 24.11.2012, 21:17
von Dayworker
Ich denke mal, daß die Shrink-Funktion in den Tools wegen ESX(i) fallengelassen wurde. Dort verschwand der entsprechende Tools-Reiter als erstes. Möglich wäre aber auch, daß das Shrinken langsam in die normale Anwendungsfunktionalität gewandert ist oder demnächst wandern wird. Im Prinzip folgt VMware dabei dem Vorbild von Winzigweich aka M$ und seinem Virtual-PC bzw dessen Nachfolger Hyper-V. Dort wird schon seit längerer Zeit eine VM mit Sparse-Disk automatisch beim Beenden wieder "eingedampft".
VMware war in der Zwischenzeit nicht untätig und hat dies bei der aktuellen Fusion-Version integriert. So zumindest verstehe ich den KB-Eintrag Defragmenting and shrinking Fusion virtual machine disks.

Bei der Apple-Affinität der Amerikaner sollte sich auch niemand mehr wundern, weshalb VMware das zuerst in Fusion integriert hat. ;)

Verfasst: 25.11.2012, 07:15
von stefan.becker
Ich habe mal gestern spaßeshalber folgende Lösung probiert:

- Mit"CloneVDI" umgewandelt/geshrinkt in ein VBOX Image (vmdk => vdi)
- Mit "qemu-img" zurück nach VMWARE (vdi => vmdk)

Dürfte wohl derzeit die schnellste "Lösung" sein. Klappt bei mir aber auch nur, weil ich monolithische Dateien ohne 2GB Schnippsel, Snapshots und ähnliches Gedönse nutze.

Was doch evtl. auch gehen müsste: Einen Gast mit einer alten Tools Version nehmen und das zu shrinkende Image als 2. Platte einbinden. Das habe ich aber noch nicht probiert.

Verfasst: 25.11.2012, 07:20
von stefan.becker
PS: CloneVDI: https://forums.virtualbox.org/viewtopic.php?f=6&t=22422

Qemu-img gehört zu Qemu/KVM.

Verfasst: 25.11.2012, 09:32
von e-e-e
stefan.becker hat geschrieben:Ich habe mal gestern spaßeshalber folgende Lösung probiert:

- Mit"CloneVDI" umgewandelt/geshrinkt in ein VBOX Image (vmdk => vdi)
- Mit "qemu-img" zurück nach VMWARE (vdi => vmdk)

Dürfte wohl derzeit die schnellste "Lösung" sein. Klappt bei mir aber auch nur, weil ich monolithische Dateien ohne 2GB Schnippsel, Snapshots und ähnliches Gedönse nutze.

Was doch evtl. auch gehen müsste: Einen Gast mit einer alten Tools Version nehmen und das zu shrinkende Image als 2. Platte einbinden. Das habe ich aber noch nicht probiert.


Für die Mausschubser unter meinen Kunden richte ich das immer so ein (letzter Beitrag): http://vmware-forum.de/viewtopic.php?t=20837&highlight=
Die Shrink-VM ist mit WS7.1.5 erstellt worden.

Verfasst: 25.11.2012, 15:40
von continuum
Geht im Gast:
c:\program files\vmware\vmware tools\vmwaretoolboxcmd.exe disk shrink c:\
nicht ?

Verfasst: 25.11.2012, 17:13
von Dayworker
Also in der WS-Doku unter http://www.vmware.com/support/pubs/ws_pubs.html wird dein Script im PDF Installing and Configuring VMware Tools nicht aufgeführt.
Dafür gibts dort aber den Punkt "Shrink a Virtual Disk" und laut diesem sollte es in der WS-Anwendung auch einen Menupunkt namens "Compact" geben. Dieser soll dann eine VM im abgeschalteten Zustand wieder eindampfen.

Verfasst: 25.11.2012, 18:25
von stefan.becker
Dayworker hat geschrieben:Dafür gibts dort aber den Punkt "Shrink a Virtual Disk" und laut diesem sollte es in der WS-Anwendung auch einen Menupunkt namens "Compact" geben. Dieser soll dann eine VM im abgeschalteten Zustand wieder eindampfen.


Beim Player gibt es das, nur helfen tut es nicht. Ich habe damit ein Win7/64 Bit von 30,2 auf 30,19 GB verkleinert. Meine Methode verkleinerte das auf 20 GB.

Vermutlich fehlt für das Compact das vorherige sdelete.

Ich werde mal "c:\program files\vmware\vmware tools\vmwaretoolboxcmd.exe disk shrink c:\ " probieren, das kann man sich ja (falls es geht) als Icon auf den Desktop legen.

Verfasst: 25.11.2012, 19:39
von stefan.becker
"c:\program files\vmware\vmware tools\vmwaretoolboxcmd.exe disk shrink c:\ " funktioniert einwandfrei und schaufelt den Platz frei, wie es sein sollte.

Verfasst: 25.11.2012, 20:06
von Dayworker
Kannst du mal probieren, ob das Script seine komplette Syntax preisgibt?
Vielleicht verbergen sich ja noch weitere Dinge...

Verfasst: 03.12.2012, 14:57
von WLemmy
stefan.becker hat geschrieben:"c:\program files\vmware\vmware tools\vmwaretoolboxcmd.exe disk shrink c:\ " funktioniert einwandfrei und schaufelt den Platz frei, wie es sein sollte.


Danke für den Test!

Verfasst: 05.12.2012, 18:36
von stefan.becker
Dayworker hat geschrieben:Kannst du mal probieren, ob das Script seine komplette Syntax preisgibt?
Vielleicht verbergen sich ja noch weitere Dinge...


Der startet erst einen Vorgang in der Kommandozeile des Gastes ohne weitere Ausgabe. ich vermute mal, das ist das sdelete.

Danach startet ein kleines Fenster, was dem Host zugeordnet ist und wo das eigentliche Shrinken läuft. Eine Ausgabe des Kommandos sehe ich da auch nicht.

Meine Lösung fürs erste: Ich lege mir das in den Gästen als "shrink.cmd" auf des Desktop.

Verfasst: 05.12.2012, 19:44
von Dayworker
Das wäre ja auch zu schön gewesen, wenn man die Syntax wie gewohnt einfach abfragen hätte können.