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
sdelete
von Microsoft bereitgestellte Tool verwenden. Führen Sie essdelete -c
im Gast aus, um den freien Speicherplatz auf Null zu setzen, bevor Sie das virtuelle Festplattenabbild komprimieren. Verwenden Sie für Linux daszerofree
Dienstprogramm, das ext2/ext3-Dateisysteme unterstützt.
Antwort2
Im Hinblick auf dieursprüngliche Antwort, die diese Lösung hatte:
In der VM:
dd if=/dev/zero of=test.file
sync
rm test.file
Auf dem Hostcomputer:
VBoxManage modifyhd --compact your_image_path.vdi
Dies ist die einzige Lösung, die ich ausprobiert habe und die funktioniert. Die zerofree
und 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.