VMware Workstation: wie zu verringern.vmdk-maximale Größe

Ich habe eine 150 GB disk-Datei (.vmdk, nicht vorab zugewiesen), in dem meine virtuelle Maschine gespeichert ist.

Die Datei ist derzeit 20 GB groß, wächst aber täglich, obwohl ich nichts Neues im Gastdateisystem speichere.

Ich habe stundenlang nach einer Möglichkeit gesucht, die maximale Größe dieser Festplatte zu reduzieren , damit sie niemals auf 150 GB ansteigt (ich möchte das Limit auf 30 GB festlegen und sehen, was passiert, wenn die VM diese Größe erreicht).

Was ich habe ausprobiert:

  • Konvertieren des Disk-Images mit VMware Converter → Dies funktioniert nicht, das Tool ermöglicht nur das Erstellen einer vollständigen Kopie oder eines "verknüpften Klons".
  • Erstellen einer neuen leeren virtuellen Maschine der gewünschten Größe, um die 20GB-Daten auf die neue zu kopieren .vmdk → Ich kann keine Möglichkeit finden, die Kopie auszuführen oder die neue Festplatte mit meiner vorhandenen VM zu verbinden (damit ich die Kopie mit dem Gastbetriebssystem durchführe).
  • Blick in die .vmx-Datei, um zu überprüfen, ob die maximale Größe nicht festgelegt wurde klartext (es ist nicht).

Obwohl diese Aufgabe technisch recht einfach zu sein scheint (es gibt kein kniffliges Schrumpfen, nur eine einfache Änderung der Größenbeschränkung), habe ich hier wirklich keine Ideen mehr...

Gibt es überhaupt eine Lösung ?

Author: Hennes, 2013-06-25

7 answers

Das übliche Verfahren zum Reduzieren der Größe von a.vmdk disk ist:

  1. Defragmentieren Sie die Festplatte über den Gast und wählen Sie einen Defragmentierungsmodus, der konsolidiert leerer Speicherplatz am Ende der Festplatte. Für einen Windows-Gast sollten Sie den Papierkorb leeren schalten Sie den Ruhezustand und das Paging aus und geben Sie sie nach Abschluss der Defragmentierung zurück.

  2. Null alle nicht verwendeten Speicherplatz auf der Festplatte.
    Für Windows verwenden Sie sdelete : sdelete -c.
    Für Linux : dd if=/dev/zero of=/mytempfile && rm -f /mytempfile.

  3. Schrumpfen Sie die Festplatte (was ziemlich lange dauern kann).
    VMware Workstation: Menü VM / Verwalten / Festplatten bereinigen.
    Oder verwenden : vmware-vdiskmanager.exe -k [VMDK PATH].
    für ESX : vmkfstools --punchzero [VMDK PATH].

Das Konvertieren der Festplatte von growable in preallocated könnte das Wachstum stoppen. Dies kann mit vmware-vdiskmanager mit dem Parameter -t erfolgen, dessen Werte sind:

0 : single growable virtual disk
1 : growable virtual disk split in 2Gb files
2 : single preallocated virtual disk
3 : preallocated virtual disk split in 2Gb files

Der folgende Befehl konvertiert die .vmdk von growable zu preallocated:

vmware-vdiskmanager -r current_disk_name.vmdk -t 3 new_disk_name.vmdk

If sie möchten die Größe der Festplatte ändern, dies sollte getan werden, während die Festplatte noch im growable Format (Beispiele hier).

Für weitere Informationen siehe die Benutzerhandbuch für Virtual Disk Manager.

 29
Author: harrymc,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2014-05-06 06:40:11

Die Datei ist derzeit 20 GB groß, wächst aber jeden Tag, obwohl Ich speichere nichts Neues im Gastdateisystem.

Weil das Betriebssystem und seine Anwendungsprogramme vorübergehend viel Speicherplatz für temporäre Dateien, Seitendateien, Hibernate-Dateien und Konfigurationsdateien verwenden. Sobald sie je nach Richtlinie des Betriebssystems gelöscht werden, werden beim nächsten Mal neue Sektoren auf der Festplatte verwendet. Die VM weist Speicher für die virtuelle Festplatte von der realen Festplatte zu, wenn ein neuer Sektor in die virtuelle Festplatte. Da der Sektor auf der virtuellen Festplatte immer nicht vom Gastbetriebssystem wiederverwendet wird, denkt die VM, dass es sich um eine Festplattennutzung handelt und Speicherplatz von der realen Festplatte zur Verfügung stellt, was zu einem wachsenden Image der virtuellen Festplatte führt.

Ihr Fragentitel wird weniger wahrscheinlich gelöst, da die Verwendung eines solchen Tools ohne Bildinspektion zu einer totalen Katastrophe führen kann. Aber Sie können das Wachstum des Bildes über 30 GB verhindern. Es gibt viele Möglichkeiten, das Ziel zu erreichen.

A. Verwenden Sie nur 30GB partitioniert und lassen Sie als frei Raum. Wenn Sie bereits mehr Speicherplatz partitioniert haben, müssen Sie ihn verkleinern/löschen, eine neue Partition erstellen, dann mit Nullen ablegen und wie von @harrymc beschrieben stanzen . Da der Raum in unpartitionierten Bereich wird nie verwendet virtuelle Festplatte wird nie über 30 GB wachsen.

B. Erstellen Sie einen Snapshot und stellen Sie ihn nach der Verwendung wieder her. Nach dem Erstellen von Snapshot VM speichern von Daten in eine neue Image-Datei. Wenn Sie darauf wiederherstellen, ohne neue Snapshots zu speichern oder zu erstellen, werden alle geänderten Daten gelöscht und somit Speicherplatz kostenlos.

C. Erstellen Sie eine neue virtuelle Festplatte mit maximal 30 GB, fügen Sie sie als neue Festplatte in Ihre aktuelle virtuelle Maschine ein und verschieben Sie alle Daten mit einem Backup-Tool auf die neue virtuelle Festplatte. Sie können ein live-Linux für das Klonen.

Empfohlene option ist Ein

 6
Author: totti,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2014-05-04 17:47:15

Warum nicht einfach die Größe der beteiligten Festplatte von 150 GB auf 30 GB einstellen?

Sie müssen die Summe aller Partitionen auf weniger als 30 GB festlegen. Sie müssen die Größe der Partitionen verkleinern, wie Sie gehen. Es gibt eine MENGE Dokumentation auf dieser Seite, wie man Partitionen verkleinert, damit ich dies hier nicht noch einmal wiederholen werde.

Warum haben Sie eine 150 GB (dünne Partition) erstellt, wenn Sie nicht den Speicherplatz hatten, um sie bei maximaler Größe zu unterstützen? Scheint, als würde das nur nachfragen Mühe.

 2
Author: mdpc,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2013-06-25 18:58:33

Es gibt einen Umweg, mit VMware Converter eine neue VM und eine kleinere VMDK-Größe zu erstellen und dann das ursprüngliche VMDK in das neu erstellte, kleinere VMDK zu konvertieren.

VMDK verkleinern

Detaillierte Schritte hier.

Beachten Sie, dass Änderungen an der VMDK-Größe auch eine entsprechende Aktualisierung der Partitionstabelle erfordern.

 2
Author: hanxue,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2013-06-25 20:33:24

Dies funktioniert nur für Sparse VMDK (NICHT vorab zugewiesen) Vor dem Verkleinern ist eine Defragmentierung erforderlich, um sicherzustellen, dass der verwendete Speicherplatz zusammenhängend ist

Defragmentieren in Windows

In einer virtuellen Windows-Maschine müssen Sie zuerst eine Defragmentierung der Festplatte ausführen innerhalb von Windows. Defragmentieren innerhalb von Windows stellt sicher, dass alle die verwendeten Leerzeichen sind zusammenhängend. Sie können dann die Größe des virtuelle Festplatte.

Schrumpfen der virtuellen disk -

Zum Verkleinern der virtuellen Festplatte:

Öffnen Sie die VMware Tools-Systemsteuerung / Toolbox:

In Windows:

Doppelklicken Sie auf das Symbol VMware Tools in der Taskleiste oder auf Start >Systemsteuerung > VMware Tools.

Unter Linux:

Öffnen Sie das Terminal und führen Sie diesen Befehl aus:

Vmware-toolbox -

Hinweis: In Workstation 9.x (Windows) und höher, schrumpfen ist automatisch beim Bereinigen der Festplatte durchgeführt. Daher ist diese Option wird von VMware entfernt Werkzeugfenster. Gehe zu VM > Verwalten > Bereinigen Scheiben. Dies ist in der Linux-Version von VMware Workstation nicht verfügbar 9.x und höher.

Klicken Sie auf die Registerkarte Verkleinern. Wählen Sie das Laufwerk aus, das Sie verkleinern möchten. Klicken Zum Schrumpfen vorbereiten und dann den Anweisungen auf dem Bildschirm folgen. Vorsicht: nicht herunterfahren der virtuellen Maschine oder der Host-Maschine während der Festplatte schrumpft. Versuchen Sie auch nicht, den Vorgang abzubrechen. Unterbrechen dieser Vorgang kann zu irreparablen Schäden an Ihrer virtuellen Festplatte und Ihnen führen kann nicht in der Lage sein starten Sie Ihre virtuelle Maschine erneut.

Von VMWare Knowledge Base

 2
Author: Jalal Mostafa,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2020-06-12 13:48:39

Die Antwort von @harrym ist ziemlich gut, beantwortet aber die Frage nicht. Das OP möchte die maximale Größe reduzieren. Das Problem ist, dass der Hypervisor nicht weiß, wie viel von der vorgestellten Größe (auch bekannt als maximale Größe) tatsächlich vom Betriebssystem verwendet wird. Die Verdichtung (vmware-vdiskmakager-k) gilt für ein erweiterbares vmdk. Es tut nichts auf preallocated one.

Die Schritte zum Verkleinern der Festplatte lauten also:

  1. Ändern Sie die Größe der Partition auf der Festplatte über das Betriebssystem oder über ein geeignetes Live CD
  2. Ändern Sie die Größe des vmdk-Geräts und wählen Sie sorgfältig die Grenze aus, um keinen nutzbaren Partitionsraum zu schneiden. Sie können immer etwas mehr Platz in der imnage lassen, als es tatsächlich benötigt wird.

Der erste Schritt beinhaltet eine Prozedur innerhalb der VM und variiert je nach Gastbetriebssystem. Der zweite Schritt könnte durch die vmware-Befehle unterstützt werden, aber ich habe keinen tiefgreifenden Weg gefunden. Also der Hacky-Ansatz.

Hier ist ein nicht so schnelles (aufgrund großer Datenbewegungen) und schmutziges lösung, die den Trick gemacht hat. Wir müssen verfügbaren Speicherplatz haben, der der maximalen Gerätegröße entspricht.

WARNUNG: Denken Sie daran, wichtige Daten vor jeder Operation zu sichern !!

  1. Finden Sie eine Möglichkeit, die Größe der Gastpartition zu ändern und nicht zugewiesenen Speicherplatz am Ende des Geräts zu belassen. Zwei Beispiele:

    Vom Gastbetriebssystem: windows 7

    1. Sie können die Online-Größenanpassungsfunktion verwenden. Es ist eine gute Idee, die Festplatte zuerst von innen zu defragmentieren die quest OS.
    2. diskmgmt ausführen.wählen Sie dann die Partition (Volume) auf der Festplatte aus, die Sie ändern möchten, und klicken Sie mit der rechten Maustaste->Volume verkleinern. Reduzieren Sie im angezeigten Dialogfeld die Größe gemäß Ihren Anforderungen. Beachten Sie, dass Sie, da die Partition verwendet wird (wenn es sich um die Systemfestplatte handelt oder stark fragmentiert ist), möglicherweise nicht den größten Teil Ihres freien Speicherplatzes wiederherstellen können. Bereitstellung, um zusätzlichen freien Speicherplatz zu lassen.
    3. Jetzt möchten wir die Partitionen kennen, die den Festplattensektor (oder Byte) beenden. Vorausgesetzt, dies ist die einzige partition auf das Gerät, nehmen wir die Größe des Volumens, wie auf meinem Computer angezeigt->wählen Sie Disk - >Rechtsklick - >Eigenschaften - >Kapazität: Beachten Sie die Anzahl in Bytes. (zB in meinem Beispiel 107371032576 für 99,9 GB). Fügen Sie einige hundert Megs zur Sicherheit hinzu (+204800) (z. B. 107371237376). Um sicherzustellen, dass nichts fehlt, können wir mit dem Dienstprogramm diskpart cmd line den Versatz der Partition vom Start des Geräts aus ermitteln. führen Sie diskpart dann: list disk, select disk id, Liste, Teil, select-Teil id, "detail". Beispiel:

    DISKPART> Detailteil

    Partition 1

    Offset in Bytes: 1048576

    Stellen Sie sicher, dass Sie mindestens diese Zahl zur Festplattengröße hinzufügen. Jetzt müssen wir die Bytes in Sektoren umwandeln, die durch 512 geteilt und nach oben gerundet werden (Decke). Z. B. 209709448. Notieren Sie diese Nummer für Schritt 3.

    Über eine live-cd: SystemResqueCD

    1. Alternativ können Sie eine resque CD verwenden, (SystemResqueCD ist mein Vorschlag), laden Sie bootfähige ISO herunter, mounten Sie es als virtuelles CD-ROM-Gerät auf Ihrer VM, booten Sie von CD (durch Drücken der Esc-Taste auf dem VMware-Startbildschirm müssen Sie es möglicherweise einige Male versuchen, da es sehr kurz erscheint). Beim Erreichen der Eingabeaufforderung Typ: startx, wird dies hoffentlich bringen Sie auf grafische Oberfläche.
    2. Sobald Sie auf dem Desktop der Systemresque sind, starten Sie gparted (z. B. von einem Terminal aus). Suchen Sie die zu ändernde Partition (diese muss im Zweifelsfall sauber entfernt werden führen Sie eine Scandisk vom Gastbetriebssystem aus). Machen Sie die Größenänderung und planen Sie sorgfältig Ihren Platzbedarf.
    3. Wieder müssen wir den Endoffset in Sektoren (oder Bytes) der Partition finden. Öffnen Sie Terminal und schreiben Sie parted [device], dann unit s, print. E. g.

Anzahl Start Ende Größe Typ Dateisystem Flags

1 2048 s 113455103 s 113453056 s primäre ntfs boot

Notieren Sie den Endsektor und fügen Sie 1 hinzu. Z. B. 113455104. Beachten diese Nummer für Schritt 3.

  1. Wie der Hack funktioniert auf einzelne Datei vorbelegt (Typ 2) vmdks (habe nicht mehrere Dateitypen ausprobiert) Wir konvertieren zuerst das Growable zu vorverlegt. Wir benötigen vorübergehend eine Partition mit physischen platz als maximale Größe des Geräts. (z.B. 150 GB).

    Vmware-vdiskmanager.exe -r sourcevmdk -t 2 destvmdk

  2. Nun der knifflige Teil, für die vorab zugewiesene Festplatte sollten 2 vmdks vorhanden sein

    Datenträger.vmdk scheibe-flach.vmdk -

    Die erstere ist nur KB lang, und die letztere hält die Daten erweitert. Öffnen Sie die erste (Festplatte.vmdk) während VMware Workstation ausgeschaltet ist, mit einem Texteditor (Notepad++ ist mein Vorschlag). Finde die Zeile

    RW 113455104 WOHNUNG " Windows 7_x64-fl-Wohnung.vmdk" 0

    Ja, Sie erhalten den Punkt, das zweite Feld ist die Anzahl der Sektoren, die dem Gerät zugewiesen sind. Als Ergebnis multiplizieren Sie mit 512 und finden Sie die Größe in Bytes, dann dividieren durch 1073741824 (1024**3) zu finden größe in GB. Dies sollte die Größe des vorherigen Geräts sein.

    Ersetzen Sie nun diese Nummer durch die angegebene Nummer aus Schritt eins und speichern Sie die Datei. WARNUNG: EIN Fehler ist hier, und Sie könnten am Ende trimmen tatsächlichen Daten auf dem Dateisystem. (Aber wir haben die Größe des fs am Anfang des Geräts geändert und korrekte und sichere Berechnungen durchgeführt, oder? )

  3. Bisher wurden noch keine Daten berührt. Führen Sie diesen letzten Schritt aus, um das Bild tatsächlich zu trimmen. Wir werden verwenden Sie die Umbenennungsfunktion von vmware-vdiskmanager, um das vmdk mit seiner jetzt beschnittenen Größe neu zu erstellen.

    Vmware-vdiskmanager.exe -n - destvmdk sourcevmdk

 2
Author: basos,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2017-02-15 10:43:26

Führen Sie für ein vmware Linux-Gastbetriebssystem Folgendes aus:

sudo vmware-toolbox-cmd disk shrinkonly

 0
Author: Tom Hale,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2016-08-19 03:43:12