[VirtualBox] Discos virtuales: Compactado

Limpiar y compactar un disco de una máquina virtual. Con el uso de la máquina virtual el fichero del disco de la máquina virtual puede ir aumentando aunque su contenido no. Eso es debido a que los ficheros que borramos dentro de ella no desaparecen.

Limpiar un disco de una máquina virtual en Virtualbox

Máquina virtual Linux

Entraremos en la máquina virtual Linux.

Haremos limpieza de ficheros que no queramos, tanto de las carpetas como de la papelera.

Llenaremos de ceros todo el espacio libre en el disco ejecutando

dd if=/dev/zero of=zerofillfile bs=1M

con ello crearemos un fichero zerofillfile conteniendo ceros, todos los que se puedan.

Llegará un momento que ya no se puedan añadir mas ceros a dicho fichero, con lo que nos aparecerá un mensaje que nos indica que no queda espacio en el dispositivo

dd: error al escribir en ‘zerofillfile’: No queda espacio en el dispositivo

Ahora eliminaremos el fichero zerofillfile usando la utilidad rm de Linux:

rm zerofillfile

Apagamos la máquina virtual.

Vamos a la carpeta de nuestro ordenador donde se encuentra el fichero vdi del disco. Si tenemos alguna duda podemos verlo en la configuración de la máquina, en el almacenamiento.

VBoxManage modifyhd –compact «RUTA AL FICHERO DEL DISCO»

Si se trata de un fichero vhd o vmdl tenemos que hacer algún paso intermedio:

VBoxManage clonehd «RUTA AL FICHERO DEL DISCO» «clon.vdi» –format vdi
VBoxManage modifyhd –compact «clon.vdi»
VBoxManage clonehd «clon.vdi» «RUTA AL FICHERO DEL DISCO» –format vdi
VBoxManage clonehd «clon.vdi» «RUTA AL FICHERO DEL DISCO» –format vmdk

Problemas

Al seguir este procedimiento me apareció en Debian el siguiente mensaje al intentar abrir de nuevo mi VirtualBox:

El motivo fué que hice el proceso anterior desde el usuario root, por lo que se alteraron algunos permisos de ficheros, quedando root como propietario y no dando acceso a usuario. Lo solucioné poniendo los permisos al usuario, usando el comando chown, en la ruta que indicaba el error:

root@pc:/home/usuario/.config/VirtualBox# chown usuario:usuario VBoxSVC.log.*
root@pc:/home/usuario/.config/VirtualBox# chown usuario:usuario VirtualBox.xml

Máquina virtual Windows

El proceso es idéntico: Hay que llenar con ceros el espacio libre del disco.

Iniciamos la máquina virtual Windows.

Vamos a optimizar las unidades, ejecutando el defragmentador.

Descargar en la máquina virtual Windows el archivoSDelete y descomprimirlo.

Deben aparecer descomprimidos tres archivos: sdelete.exe, sdelete64.exe y sdelete64a.exe.

Ejecutar en una consola como administrador

sdelete.exe c: -z

Esto llenará el espacio libre con ceros.

Cuando finalice, apagar la máquina virtual y ejecutar el paso semejante a como hicimos en Linux:

VBoxManage modifyhd «RUTA AL FICHERO DEL DISCO VDI» --compact

por ejemplo

VBoxManage modifyhd w11_ponte.vdi --compact

suponiendo que estemos dentro de la carpeta que lo contiene.