lunes, mayo 04, 2009

Mantención de imágenes virtuales de virtualbox

Luego de muchos meses sin escribir, vuelvo para dar un truco corto, pero muy útil.
Hoy noté que me quedaba sin espacio libre en la partición home, tanto en mi laptop como mi escritorio. no entendía porqué, pues no había instalado nada particularmente grande. Luego, investigando un poco me nació un sospechoso: El disco duro de la máquina virtual (VirtualBox) estaba usando mucho más espacio que el indicado por el sistema operativo invitado.
¿porqué ocurre ésto?
Lo que sucede es que cuando se borra un archivo en el sistema operativo windows, éste "marca" el espacio utilizado como libre, pero físicamente los datos permanecen ahí. Perjudicando enormemente a los entornos virtuales.
¿como solucionarlo?
Existen herramientas para windows, como sdelete, la cual "limpia" el espacio no utilizado marcándolos con ceros. Su utilidad es para asegurarse de tener entornos donde no se puedan recuperar archivos una vez borrados, sin embargo la utilidad para el caso de las máquinas virtuales es que existen programas que encogen el espacio utilizado por una unidad de tamaño variable, permitiendo recuperar espacio mal utilizado.
El método que expongo a continuación es para virtualbox, y utilizándolo el tamaño de mis imágenes bajó de 15G a sólo 4G!

- En un sistema operativo invitado, descargar sdelete (el enlace se encuentra al final de la entrada), y ejecutar:
sdelete -c c:

luego cerrar la máquina virtual, y desde una línea de comandos ejecutar:
VBoxManage modifyvdi /ruta/imagenwin.vdi compact

es necesario especificar la ruta completa del archivo, o la misma que está registrada en el archivo de configuración de VirtualBox.

Enlaces útiles
sdelete: Utilidad de Microsoft para borrar completamente los archivos.