Publicado por en
Al trabajar con maquinas VirtualBox uno de los principales problemas es el aumento de tamaño de los discos virtuales. Es muy habitual que con el uso empiecen a crecer pudiendo ocupar un espacio muy valioso. Generalmente este espacio no se puede recuperar borrando archivos del sistema operativo anfitrión, por lo que es necesario compactar maquinas VirtualBox.
Introducción
Hoy en día el trabajo con maquinas virtuales es muy habitual. Gracias a estas se pueden probar aplicaciones o configuraciones en entornos controlados, sin los costes que conlleva la utilización de maquinas físicas. Además, se puede probar software que no esta disponible en el sistema operativo utilizado como anfitrión.
Uno de los programas de virtualización más utilizados en la actualidad para las arquitecturas x86 y x86-64 es VirtualBox. Actualmente desarrollado por Oracle se puede obtener para la mayoría de los sistemas operativos de forma gratuita. Las última versión se puede descargar desde la página del proyecto https://www.virtualbox.org.
A medida que se trabaja con las maquinas virtuales el tamaño de los discos suele a aumentar. Ocupando cada vez más espacio en los discos de la maquina anfitrión. El tamaño de los discos no se suele reducir simplemente borrando contendió en los sistemas virtualizados. Para recuperar el espacio es necesario realizar un proceso para compactar las maquinas VirtualBox.
Procedimiento para compactar maquinas VirtualBox
El proceso para realizar la compactación de una maquina virtual requiere unos pasos que varían en función del sistema virtualizado. En primer lugar, se ha de eliminar el mayor espacio posible dentro de la maquina virutal. En el caso de que el sistema operativo virtualizado sea Windows es aconsejable desfragmentar en este momento el disco duro.
Una vez eliminados los archivos sobrantes es necesario sobrescribir con cero los espacios vacíos que quedan en disco virtual. En Windows esta tarea se puede realizar con la aplicación SDelete y en Linux con el comando dd. Los comandos que se han de ejecutar son
- si el sistema virtualizado es Windows:
- si el sistema virtualizado es Linux:
sudo dd if=/dev/zero | pv | sudo dd of=/bigemptyfile bs=4096k
sudo rm -rf /bigemptyfile
Este es el momento el que se ha de cerrar la maquina virtual y ejecutar las herramientas de compactación en la terminal del sistema anfitrión. Las herramientas por utilizar dependerán formato del disco virtual. En el caso de que este sea de formato VDI se ha de utilizar
VBoxManage modifyhd /disco.vdi -compact
donde disco.vdi es el archivo para compactar. Por otro lado, en el caso de que el disco sea en formato `vmdk` se ha de clonar utilizando
VBoxManage clonehd disco.vmdk clone.vmdk
Ahora se ha de esperar un tiempo para que los discos se compacten. Esto dependerá del tamaño de los discos y de la velocidad de estos.
Convertir discos en formato vmdk a vdi
VirtualBox puede trabajar tanto con discos vdi como vmdk, aunque funciona mejor con los primeros. En el caso de tener uno disco en formato vmdk se pude convertir fácilmente a vdi. Para ello solamente se ha de utilizar las herramientas de terminal que provee VirtualBox. El comando que se ha de ejecutar es:
VBoxManage clonehd disco.vmdk disco.vdi --format vdi
Obteniéndose de esta manera dos discos, el original vmdk y la copia en formato vdi. Para utilizar el nuevo, se ha de ir a la configuración de la maquina y cambiar el primero por el segundo.
Conclusiones
En esta entrada se ha visto cómo compactar maquinas VirtualBox para reducir el espacio de estas. Con el uso cada vez de más maquinas virtuales es una buena idea mantener el tamaño de estas bajo control.