Reducir el tamaño de los discos de las máquinas virtuales (vdi vmdk)

Cuando utilizamos VirtualBox para crear alguna que otra máquina virtual podemos crear discos, cuyo archivo crezca dinámicamente a medida que se vaya utilizando el espacio.

Sito desde VirtualBox:

“Un archivo de disco virtual reservado dinámcamente solo usa espacio en su disco duro físico según se llena, sin embargo no se reducirá de nuevo automáticamente cuando el espacio en él sea liberado”.

Generalmente no creo máquinas virtuales con discos muy grandes. No superan los 5 u 8 GB o lo que VirtualBox me sugiera. Sin embargo el problema surge al querer trasladar esas máquinas ya sea en un pendrive o guardarlas en un DVD. Si el archivo .vdi supera el tamaño del pendrive o los 4.7 GB del DVD no hay mucho que se pueda hacer.

Entonces comencé a buscar como podía reducir el tamaño de los archivos .vdi.

Existen una serie de pasos previos a realizar desde el sistema operativo virtualizado antes de compactar el archivo. Básicamente estos pasos consisten en liberar todo el espacio posible y luego llenar con 0 todo el espacio disponible. Los pasos varían según se trate de Linux o de Windows.

Para Windows

  1. Liberar espacio en disco con una herramienta como CCleaner, eliminando temporales, cache de los navegadores, etc.
  2. Defragmentarel disco usando las herramientas del sistema o alguna utilidad externa:
    • Usando las herramientas de sistema vamos a Mi PC > Unidad (C:) > boton derecho > Propiedades > Pestaña Herramientas > Defragmentar la unidad.
    • De otra forma podemos utilizar herramientas como MyDefrag.
  3. Descargar la utilidad SDelete de Microsoft la cual sobreescribe con ceros el espacio libre. Para utilizarla escribimos desde la linea de comandos: sdelete -c c:  sdelete -z c: (gracias al aporte de Emi)

Para Linux

  1. Liberar espacioeliminando archivos temporales, desinstalando aplicaciones innecesarias, limpiando la cache de los navegadores, limpiando la cache del gestor de paquetes:
    • Con df -h podemos verificar el espacio libre que va quedando en cada partición
    • sudo aptitude purge
    • sudo aptitude clean
  2. Utilizar zerofree para llenar con ceros el espacio libre
    • sudo apt-get install zerofree
    • Zerofree no nos dejará realizar ninguna operación al menos que montemos la partición como solo lectura, para lo cual:
      • sudo telinit 1
      • # mount -n -o remount,ro /dev/sda1 /
      • # zerofree /dev/sda1

Una vez completos estos pasos apagamos la máquina virtual y desde la consola del anfitrión ejecutamos

VBoxManage modifyhd debian.vdi --compact

Ahora bien, yo había creado una máquina con un disco en el formato que usa VMWare. Un .vmdk, que dicho sea de paso es el formato estándar, y esto era lo que mostraba la utilidad a la hora de realizar la operación.

VBoxManage modifyhd Debian.vmdk --compact
 0%...
 Progress state: VBOX_E_NOT_SUPPORTED
 VBoxManage: error: Compact hard disk operation for this format is not implemented yet!

Por lo que tuve que buscar otra solución. Me encontré con CloneVDI disponible en los foros de VirtualBox.

Esta pequeña aplicación se las ingenia para realizar varias tareas que tengan que ver con el clonado, compactación, agregar espacio, etc. de los discos de VirtualBox, al utilizar técnicas propias soporta otros formatos de discos (vdi, vhd, vmdk, hdd) y dice ser más rápido que VBoxManage.Una única desventaja es que solo puede escribir archivos .vdi.

La utilidad corre bajo Windows, pero no tuve problemas al correrla sobre Wine en Linux.

Compactando un disco virtual con CloneVDI

Compactando un disco virtual con CloneVDI

Solo tendremos que especificar el archivo sobre el que queremos trabajar en el campo “Source”, el nombre del archivo compactado en “Destination”, marcar el checkbox “Compact drive while copying” y presionar el botón “Proceed”.

5 pensamientos en “Reducir el tamaño de los discos de las máquinas virtuales (vdi vmdk)

  1. Muy bueno, gracias!!. Quería comentar que el formato nativo de virtual box es .vdi, pues .vmdk es el formato nativo de VMWare. Oracle Virtual Box permite crear discos duros virtuales con formato .vmdk para que puedan ser utilizados directamente por VMWare sin utilizar ningún tipo de conversión.

  2. Gracias por hacer referencia a CloneVDI. Estaba usando el VBoxManage modifyhd –compact y a mitad del proceso fallaba.
    CloneVDI ha hecho lo que necesitaba. Saludos!

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s