Los que usamos máquinas virtuales tenemos el problema de que en un mismo equipo estamos almacenando varios sistemas en su interior, por lo que nuestro espacio de almacenamiento se ve mermado por cada máquina que necesitamos.
En las configuraciones al crear la máquina, aunque establezcamos un crecimiento dinámico (irá creciendo según se vaya necesitando) tenemos la ventaja de que no tenemos que hacer una previsión de crecimiento, pero por el contrario, la desventaja de que una vez que se libera el espacio, este no se ve reflejado en nuesto ordenador anfitrión. ¿Como podemos beneficiarnos de ese espacio?
La solución es rellenar los discos duros virtuales .vdi con 0, zeros. Para ello tenemos que seguir unos pasos dependiendo del S.O.
En sistemas Linux
Aunque la fragmentación no se realiza igual que en sistemas windows, podemos utilizar el comando zerofree.
# apt-get install zerofree
Y para usarlo
# zerofree /dev/sda1
Nota: el comando requiere que la partición esté montada como solo lectura:
# mount -n -o remount,ro /dev/sda1 /
En sistemas Windows:
Utilizar programas como CCleaner o desfragmentar el disco con la utilidad de Windows (Mi PC > Unidad (C:) > boton derecho > Propiedades > Pestaña Herramientas > Defragmentar la unidad).
Una vez conseguido liberar el espacio en los sistemas huespedes, con las máquinas apagadas, procedemos a liberar el espacio con el comando:
# VBoxManage modifyhd nombre_imagen_disco.vdi –compact
Si por cualquier cosa, no tenemos el disco con la extensión .vdi podemos recombertirla utilizando los siguientes pasos que ya comenté hace tiempo: Convertir de vmware a virtualbox
Espero que os sirva de ayuda.