Man kann bei VirtualBox die virtuellen Festplatten so konfigurieren, dass sie virtuell z. B. 100 GiB groß sind, sie in Wirklichkeit aber erst dann den Speicherplatz tatsälich belegen, sobald Daten auf diesen virtuellen Festplatten erzeugt werden. Das Problem daran ist, dass sie nicht automatisch wieder verkleinert werden; dazu muss man VBoxManage per CLI nutzen.

Einen Trick dafür hat mir der neti verraten:

Man macht in der Konfiguration der virtuellen Maschine im Bereich „Storage“ einen Haken für jede virtuelle Festplatte bei „Solid-state Drive“. Dann beendet man VirtualBox und öffnet mit einem Texteditor die zugehörige .vbox-Datei und sucht für jede virtuelle Festplatte nach der folgenden Stelle:

<AttachedDevice nonrotational="true" type="HardDisk" hotpluggable="false" port="0" device="0">

Diese ändert man dann um nach:

<AttachedDevice nonrotational="true" discard="true" type="HardDisk" hotpluggable="false" port="0" device="0">

Läuft in der virtuellen Maschine z. B. ein aktuelles Ubuntu 15.10, so wird automatisch wöchentlich der Befehl „fstrim“ ausgeführt und so gelöschter Festplattenspeicher auch in der Imagedatei wieder freigegeben.

Zum Testen kann man ein paar Dateien in der virtuellen Maschine selbst erzeugen, wieder löschen und dann fstrim manuell aufrufen:

fstrim -v /

Dieser Trick funktioniert in einer virtuellen Maschine auch dann, wenn das Hostsystem selbst keine SSD nutzt.

Danke @neti :)

Auch wenn dieser Trick für den einen oder anderen schon lange bekannt ist, für mich ist es neu und steht deshalb hier im Blog.