Si vous aussi vous remarquez que les fichiers VDI de vos VM VirtualBox ont tendence à grossir même si s'espace disque utilisé sur la VM ne correspond pas forcément avec la taille des fichiers VDI.

Les fichiers VDI ont beau être dynamique, par défaut seul l'agrandissement de l'occupation est pris en charge. Autre point dans le cas de VM sous Linux avec des filessysteme comme Ext3 ou Ext4, l'espace libéré n'est jamais mis à zéro mais les bloques sont simplement déréférencé.

Pour illustrer ce problème : prenons un Virtual Box sur un Mac (le fonctionnement et le même sous Linux il faut juste adapté le chemin des exécutables), Une VM avec une partition LVM pour / . Depuis la VM un df -h donne une partition de 3 Go, mais le fichier VDI de ce même disque dépasse les 15Go !

Point bloquant ici le système de fichier qui me pose problème est monté sur la racine donc non démontable depuis la VM courante.

Arrêter la VM qui prend trop de place Utilisez une deuxième VM sous linux (attention pas un clone sinon ça pose problème) et lui ajouter le disque dur de la 1iere.

Démarrer cette seconde VM.

installer le package zerofree

  1. apt-get install zerofree

puis lancer la commande

  1. zerofree /dev/xxxx

ou xxxx est la partition de la 1ier VM (trop grosse).

Une fois la commande terminée eteindre la VM et lui retirer le disque.

Sur votre machine physique cette fois :

  1. cd /Applications/VirtualBox.app/Contents/MacOS
  2. BoxManage modifyhd /Users/login/VirtualBox\ VMs/Machine/Machine.vdi --compact

Et appréciez le gain de place :-)