So reduzieren Sie die Größe der VMware-Festplatte

15

Meine Ubuntu-Image-VMware-Festplatte ist auf eine physische Dateigröße von 5 GB angewachsen. Es ist eine dynamisch wachsende Festplatte mit einer maximalen Kapazität von 8 GB. Ich habe einige Sachen in der Linux-Distribution gesäubert und jetzt nimmt sie 3 GB ein. Offensichtlich ist die physische Dateigröße nicht automatisch zurückgegangen. Gibt es eine Möglichkeit (wenn möglich kostenlos), diese Festplatte auf ~ 3 GB zu verkleinern?

Ich brauche das, um das Bild auf die DVD zu passen.

Marcin Rybacki
quelle

Antworten:

21

Es gibt drei Schritte:

  1. Defragmentierung (keine Notwendigkeit, etwas zu entfernen / wieder zu montieren)

    sudo e4defrag /

    Ignorieren Sie alle Fehler. Einige Dateien wie Symlinks und Gerätedateien können nicht defragmentiert werden.

  2. Füllen Sie den gesamten nicht genutzten Speicherplatz mit Null aus, damit VMware weiß, dass er tatsächlich nicht verwendet wird:

    dd if=/dev/zero of=wipefile bs=1M; sync; rm wipefile

  3. Führen Sie den Schrumpfvorgang aus:

    sudo vmware-toolbox-cmd disk shrinkonly

Tom Hale
quelle
Dies ist die richtige Antwort für VMWare Workstation. Danke Mann, hat mir sehr geholfen!
Clonkex
Richtig. Funktioniert gut auf VMWare Workstation 14, Centos 7 Guest
odiszapc
1
Seien Sie vorsichtig, wenn Sie dies mit gemounteten externen Volumes wie S3 ausführen - der Befehl null füllen versucht, eine 256-TB-Wipe-Datei in Ihrem S3-Bucket zu erstellen ...
paj
Arbeitete für mich für Windows 10 Host und Ubuntu 16 Gast. Zuerst dachte ich, dass Schritt 3 auf dem Host ausgeführt werden sollte, aber ich habe mich geirrt. Nach all den Schritten führe
Alex Che
1
+1, aber ich denke, die Verwendung von zerofree für Schritt 2 wäre viel schneller und sauberer: manpages.ubuntu.com/manpages/xenial/man8/zerofree.8.html
Étienne
15

Ich habe die Lösung gefunden - Sie müssen Ihre Festplatte komprimieren:

Virtuelle Maschine - Einstellungen - Allgemein - Virtuelle Maschine bereinigen

Marcin Rybacki
quelle
Beeindruckend. Endlich habe ich diese Antwort gefunden. Aber ... warum wird durch das Komprimieren der virtuellen Festplatte der freie Speicherplatz nicht wiederhergestellt?
Wizard79
8
Sie müssen dies innerhalb des Ubuntu-Gastbetriebssystems tun (vorausgesetzt, Sie haben VMware Tools installiert): "vmware-toolbox-cmd disk shrink /", das den Job erledigen soll.
DH4
Dies gilt nicht für ESXi. Siehe dazu meine Antwort unten.
Collin Chaffin
3

Öffnen Sie die VMware Toolbox im Gast (als Root) und verkleinern Sie die Festplatte. (Dokumentation)


Wenn Sie nicht über VMware Tools verfügen, können Sie die Festplatte in zwei Schritten manuell verkleinern. Löschen Sie zunächst den freien Speicherplatz auf der virtuellen Festplatte mit einem Tool wie zerofree . Zerofree ist in Ubuntu verfügbar. Da das Dateisystem des Gastbetriebssystems jedoch schreibgeschützt bereitgestellt werden muss , können Sie es von einer Live-CD ausführen. Parted Magic enthält angeblich nullfrei.

Öffnen Sie nach dem Nullstellen des freien Speicherplatzes die Einstellungen für virtuelle Maschinen und komprimieren Sie die virtuelle Festplatte.

nandhp
quelle
3
Die Benutzeroberfläche der VMware-Toolbox ist nicht mehr vorhanden, Sie können jedoch weiterhin Folgendes verwenden: "VMware-Toolbox-Cmd-Festplattenschrumpfung /", die die Aufgabe übernehmen soll.
DH4
3

Benutzen

sudo vmware-toolbox-cmd disk shrinkonly

über die Eingabeaufforderung in Ihrem Ubuntu-Gast.

(Getestet unter Ubuntu 14.04 LTS-Gast + Windows 10-Host + VMWare Workstation 12.1.1)

YasharF
quelle
1

Größenänderung der VMWare-Festplatte :

Das Erweitern der dynamischen virtuellen Festplatte in VMWare ist einfach und erfordert nicht mehr das Befehlszeilentool, das vmware-vdiskmanager.exesich standardmäßig in befindet C:\Program Files\VMware\VMware Workstation\.

Verwenden Sie zum Ändern der Größe den folgenden Befehl (Öffnen Sie eine Eingabeaufforderung, indem Sie WIN + R drücken und cmd eingeben): " C:\Program Files\VMware\VMware Workstation\vmware-vdiskmanager.exe" -x NEWSIZE "diskname.vmdk"

Vorgehensweise :

Die folgenden Schritte sind:

  • Laden Sie hier
  • Installieren
  • Öffnen
  • Wählen Sie die Partition aus, klicken Sie auf Größe ändern / verschieben, ziehen Sie den Griff auf seine volle Breite
  • Klicken Sie auf Übernehmen
  • Stimmen Sie einem Neustart zu
  • Drücken Sie während des Startvorgangs keine Taste
  • Lassen Sie das Startmodul seine Aufgabe ausführen
  • Überprüfen Sie, ob die Größe Ihrer Windows-Systempartition erhöht wurde.

Eine visuelle Übersicht über die Schritte und zusätzliche Informationen finden Sie hier .

Lorenz Lo Sauer
quelle
1

Diese Schritte haben bei mir perfekt funktioniert:

1) Nicht genutzten Speicherplatz mit Null füllen

cat /dev/zero > zero.fill;sync;sleep 1;sync;rm -f zero.fill

2) Verkleinern Sie die Festplatte mit der VMware-Toolbox

sudo vmware-toolbox-cmd disk shrink /

Getestet unter Ubuntu 16.04, VMware Workstation 12.1.0 Player, Windows 7 Host

dontbyteme
quelle
0

Das Verkleinern von Festplatten ist unter ESXi möglich.

  1. Suchen Sie die große Datei und löschen Sie sie.

    finde / -typ f-Größe + 50M

  2. Defragmentierung (keine Notwendigkeit, etwas zu entfernen / wieder zu montieren). Ignorieren Sie alle Fehler. Einige Dateien wie Symlinks und Gerätedateien können nicht defragmentiert werden.

    sudo e4defrag /

  3. Füllen Sie den gesamten nicht genutzten Speicherplatz mit Null aus, damit VMware weiß, dass er tatsächlich nicht verwendet wird:

    dd if = / dev / zero von = wipefile bs = 1M; synchronisieren; rm wipefile

  4. Führen Sie den Schrumpfvorgang aus: Wenn 4 fehlschlägt, fahren Sie mit 5 fort.

    sudo vmware-toolbox-cmd disk schrumpft nur

  5. Starten Sie das Linux-System mit der Option try neu und bearbeiten Sie die Partitionstabelle mit gparted. Verkleinern Sie das Root-Dateisystem und löschen und verschieben Sie die Swap-Partition in die Nähe der Root-Partition.

  6. SSH an ESXi und geben Sie diesen Befehl ein:

    vmkfstools -K /vmfs/volumes/volumename/vmname/vmname.vmdk

  7. Wir müssen die * .vmdk-Datei bearbeiten. Definiert nach den Buchstaben RW die Größe der virtuellen VMware-Festplatte (VMDK).

    * 40 GB = 40 * 1024 * 1024 * 1024/512 = 83886080 *

  8. Migrieren Sie es in einen anderen Datenspeicher, um die neue Größe widerzuspiegeln.

Kondapaneni
quelle
(1) Bei der Frage geht es nicht darum, wie die Nutzung des Dateisystems verringert werden kann. es heißt, dass das OP das bereits getan hat. Ihr findBefehl ist also nicht wirklich relevant. (2) Was macht vmkfstools -K? (3) Eine Datei manuell bearbeiten? "Ja wirklich?" (4) Ich verstehe Ihre Anweisungen nicht, welche Änderungen der Benutzer an der Datei vornehmen muss. (5) Was sagen Sie zur Migration in einen anderen Datenspeicher? (0) Das meiste, was Sie sagen, wurde bereits behandelt. ………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… Bearbeiten Sie  Ihre Antwort, um sie klarer und vollständiger zu gestalten.
Scott
Nun, ich bin ein VMware-Typ (ich denke, jeder, der dies versucht, sollte es auch sein), daher ist diese Antwort nicht nur die EINZIGE, die sogar für ESXi gilt (da ESXi KEINE Shrink-Linux-Gäste über vmtools unterstützt), sondern letztendlich perfekt gemacht wurde Sinn für mich. Trotzdem ist Schritt 7 nicht nur unnötig, sondern auch falsch. Da durch das Verkleinern die tatsächliche VOLUME-Größe nicht geändert wird, beenden Sie einfach nach Schritt 6. Schritt 8 (Speichermigration) wird nur verwendet, wenn Sie eine Festplatte verkleinern möchten, OHNE vmkfstools auszuführen, wodurch dies zwangsweise erledigt wird. Aus diesem Grund erfordert diese Lösung auch einen Schritt 5a-SHUT DOWN Gast.
Collin Chaffin
Siehe meine Antwort oben. Das in Schritt 5 aufgeführte vmtools-basierte cmd ist ebenfalls falsch, da es in keinem ESXi-Host-basierten Szenario unterstützt wurde (oder sogar funktioniert).
Collin Chaffin
0

Ausdünnen (Verkleinern) von VMDK-Festplatten auf ESXi / vSphere Linux-Gästen

Hinweis: "Verkleinern" wird häufig synonym verwendet, um den Prozess des Reduzierens der Größe einer Thin-Typ-Datenträgerdatei zu bezeichnen. VMware verwendet den Begriff "Verkleinern", um die zugrunde liegende Größe der dem Gast zur Verfügung stehenden Festplatte zu reduzieren, und "Ausdünnen", da der Prozess am häufigsten dazu verwendet wird, nicht genutzten Speicherplatz wiederzugewinnen, ohne die zugrunde liegende verfügbare Größe zu ändern.

Da ESXi das vmtools-basierte Verkleinern unter Linux-Gästen nicht unterstützt, müssen die folgenden Schritte ausgeführt werden. Weitere Informationen finden Sie unter dem folgenden Referenzlink.

  1. (falls möglich) Beenden Sie alle schreibintensiven Anwendungen und Dienste auf der Festplatte, da die folgenden Schritte das Zielvolume vorübergehend füllen

  2. Defragmentieren Sie die Volumes auf dem Ziel-VMDK und ignorieren Sie alle Fehler als Symlinks / Gerätedateien / etc. kann nicht defragmentiert werden.

    # USE sudo IF NECESSARY IN YOUR CONFIG!
    e4defrag /
    # or e4defrag /mnt/MOUNTVOLUME
  1. Füllen Sie den gesamten nicht genutzten Speicherplatz mit Null aus:
    dd if=/dev/zero of=/mnt/MOUNTVOLUME/zeroes bs=1M; sync; rm /mnt/MOUNTVOLUME/zeroes
  1. Gast herunterfahren und ausschalten

  2. SSH an den ESXi-Host und geben Sie die folgenden Befehle ein:

    # Check current vmdk allocation
    du -h /vmfs/volumes/volumename/vmname/vmname.vmdk

    # Shrink it
    vmkfstools -K /vmfs/volumes/volumename/vmname/vmname.vmdk

    # Check again to verify shrinkage
    du -h /vmfs/volumes/volumename/vmname/vmname.vmdk
  1. Schalten Sie den Gast ein

Quelle

https://kb.vmware.com/s/article/1002019

Durch das Löschen von Dateien in den meisten Dateisystemen werden diese nicht vollständig entfernt. lediglich Dateitabellen werden geändert. Die Verwendung sicherer Dienstprogramme zum Löschen von Freeware-Dateien wie Eraser oder SDelete ist nützlich, um den Speicherplatz auf Null zu setzen und den freien Speicherplatz auf dem Volume auf Null zu setzen, wodurch der freie Speicherplatz für Daten effektiv gelöscht wird. Dann kann die Platte richtig verdünnt werden. Sie können dann den Befehl vmkfstools -K (ESXi / ESX 4.1 und höher) verwenden, um die Blockrückforderung abzuschließen, oder Storage vMotion verwenden, um die virtuelle Maschine in einen Datenspeicher mit unterschiedlicher VMFS-Blockgröße zu migrieren.

Collin Chaffin
quelle