Wie kann die VM-Größe reduziert werden?

Wie kann die VM-Größe reduziert werden?

Ich habe eine Virtualbox-VM mit einer VDI-Datei, die 49 GB auf dem Hostcomputer belegt.

Früher habe ich vielleicht so viel Speicherplatz in der VM verwendet, jetzt nutze ich jedoch nur noch etwa 6 GB.

Ich habe diesen Befehl für Virtualbox ausprobiert:

vboxmanage modifyhd /path/to/disk.vdi --compact

Es begann mit 0 % ... 10 % ... 100 % zu funktionieren. Aber es passierte nichts weiter, die VDI-Datei war immer noch 49 GB groß.

Dann führe ich „df -h“ in der VM aus und finde Folgendes:

root@mypc# df -h
Filesystem                  Size  Used Avail Use% Mounted on
/dev/mapper/mypc-root       2.0T   38G  1.9T   2% /
udev                        1.3G  4.0K  1.3G   1% /dev
tmpfs                       502M  784K  501M   1% /run
none                        5.0M     0  5.0M   0% /run/lock
none                        1.3G  160K  1.3G   1% /run/shm
/dev/sda1                   228M   31M  185M  15% /boot
/home/someuser/.Private     2.0T   38G  1.9T   2% /home/someuser

Ich weiß nicht, warum dort 38 GB verwendet werden.

Ich habe den Papierkorb geleert, aber es hat nicht geholfen.

Irgendwelche Ideen, was ich sonst noch tun kann?

Die VM hat Ubuntu 12 mit verschlüsseltem LVM und Home (das ist das .Private-Verzeichnis). Der Host hat Windows 7.

AKTUALISIEREN

Ich konnte Speicherplatz für /dev/sda1 freigeben, aber nicht für /dev/mapper/mypc-root. Zerofree startet und endet nie, obwohl ich erkennen kann, dass die Festplatte aufgehört hat zu schreiben, weil sie nach einer Minute aufhört, Geräusche zu machen.

Hier ist die Ausgabe für 'df -ih'

root@mypc:/home/someuser# df -ih
Filesystem                 Inodes IUsed IFree IUse% Mounted on
/dev/mapper/mypc-root        128M  208K  128M    1% /
udev                         311K   495  310K    1% /dev
tmpfs                        314K   428  314K    1% /run
none                         314K     4  314K    1% /run/lock
none                         314K     7  314K    1% /run/shm
/dev/sda1                    122K   230  122K    1% /boot
/home/someuser/.Private      128M  208K  128M    1% /home/someuser

Antwort1

Von demHandbuch:

Damit dieser Vorgang wirksam ist, muss der freie Speicherplatz im Gastsystem zunächst mit einem geeigneten Softwaretool auf Null gesetzt werden. Für Windows-Gäste können Sie das sdeletevon Microsoft bereitgestellte Tool verwenden. Führen Sie es sdelete -cim Gast aus, um den freien Speicherplatz auf Null zu setzen, bevor Sie das virtuelle Festplattenabbild komprimieren. Verwenden Sie für Linux das zerofreeDienstprogramm, das ext2/ext3-Dateisysteme unterstützt.

Antwort2

Im Hinblick auf dieursprüngliche Antwort, die diese Lösung hatte:

In der VM:

  1. dd if=/dev/zero of=test.file
  2. sync
  3. rm test.file

Auf dem Hostcomputer:

  1. VBoxManage modifyhd --compact your_image_path.vdi

Dies ist die einzige Lösung, die ich ausprobiert habe und die funktioniert. Die zerofreeund sfill(von secure-delete) funktionieren auf meiner Debian-VM (Windows 10-Host) nicht.

Antwort3

Ich denke, der Kern Ihres Problems ist, dass Ihr Root-Dateisystem ( /) 2 TB groß ist. Bei einem so großen Dateisystem ist der relativ geringe Overhead (Inodes und so) immer noch ziemlich groß (> 32 GB, in Ihrem Fall).

Wenn Sie Ihre virtuelle Festplatte verkleinern möchten, müssen Sie zuerst Ihr Root-Dateisystem verkleinern.

verwandte Informationen