JASoft.org

El blog de José Manuel Alarcón Aguín. Programación web y mucho más...

MENÚ - JASoft: JM Alarcón

Cómo reducir el tamaño de una máquina virtual en VirtualBox

Desde hace unos meses estoy probando las diferentes versiones de Windows 10 Preview así como otros productos que instalo dentro de este nuevo sistema operativo. Para ello, y dado que es una versión no definitiva, utilizo una máquina virtual  desde la que puedo hacer el bruto lo que quiera y probar sin miedo a que se cargue algo de mi sistema operativo principal.

Mi entorno de virtualización de escritorio favorito es VirtualBox, que es gratuito, Open Source, trabaja con todos los tipos de discos virtuales de otras marcas, y se actualiza constantemente. Llevo usándolo muchísimos años, yo creo que desde que salió, y la única pega que tiene es que desde hace un tiempo tiene a Oracle detrás (lo compró junto con Sun Microsystems).

Bien, el caso es que Windows 10 se actualiza bastante a menudo con nuevas cosas, y más si estás en el "Fast ring" de las actualizaciones, que entonces caen cada dos por tres. Cada vez que se actualiza el sistema completo crea una copia de seguridad del sistema anterior, lo cual hace que tras varias actualizaciones tengas muchísimos GB de espacio ocupados en el disco solo por si acaso quieres volver atrás. Esto hace que el disco crezca mucho y que te quedes sin espacio en el disco virtual o, peor, en el disco físico que lo alberga. En mi caso, por ejemplo, lo tengo albergado en una unidad SSD que va rapidísima, pero que tiene más máquinas virtuales y un espacio limitado. Por ello llega un punto en que necesito reducirlo para que no me ocupe todo el disco.

¿Cómo puedo hacer para reducir el tamaño del disco duro virtual?

Los pasos son sencillos, pero hay que conocerlos y no es evidente:

1.- Libera espacio. Esto es evidente, claro. Pero, aparte de borrar tus propios archivos que no necesites, la mejor forma de hacerlo es lanzar el vetusto asistente para liberar espacio en disco, que puedes buscar preguntándole a Cortana por "disk cleanup":

Disk-CleanUp-Win10

Pulsar para aumentar

Deberemos marcar la opción de "Limpiar archivos del sistema", marcada en rojo en la figura anterior. Esto abrirá de nuevo la misma ventana pero con más opciones. Asegúrate de marcar la opción de eliminar versiones anteriores del sistema operativo (que será lo que más ocupe) y aceptar cuando te pida confirmación.

Esto liberará muchos GB del disco duro virtual, pero no es suficiente. Además verás que aunque ahora tienes mucho espacio libre en tu disco duro virtual el archivo .vdi de éste sigue ocupando exactamente lo mismo en disco.

2.- Desfragmenta el disco en el sistema operativo huésped (o sea, en mi caso Windows 10). Esto hará que los archivos se "junten" en la medida de lo posible al principio del disco, es decir, al principio del archivo que representa ese disco virtual, dejando "espacio libre" hacia el final del mismo, todo junto. A lo mejor no te lo permite el sistema, en cuyo caso será porque no es necesario.

3.- Rellena con ceros el espacio libre. Ese espacio libre que tengamos al final del disco virtual deberemos rellenarlo con ceros para realmente marcarlo como vacío. Como probablemente sepas, cuando borras un archivo en Windows realmente no lo borras sino que lo marcas como borrado en la tabla de índices de archivos. Es decir, se elimina su entrada en el índice de archivos del sistema pero el archivo sigue estando ahí presente, aunque huérfano. Por eso funcionan bien a veces las utilidades de recuperación de archivos que rastrean el disco sector por sector para encontrar esos archivos perdidos.

El caso es que para asegurarnos de que haya ceros en el espacio libre y luego VirtualBox pueda reconocer y recuperar éste, necesitamos usar algún tipo de utilidad para ello. Una estupenda y gratuita es SDelete de SysInternals (de Microsoft). Descárgala en tu máquina virtual, descomprime el archivo descargado y ejecútala desde línea de comandos así (no necesita instalación):

sdelete –z

Tardará un rato dependiendo del tamaño de tu disco duro virtual.

4.- Compacta el disco duro virtual. VirtualBox incluye una utilidad de línea de comandos para esto.

Apaga la máquina virtual. Ahora abre una línea de comandos y escribe lo siguiente:

"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" modifyhd D:\RutaAlDiscoDuroVirtual\disco.vdi --compact

Aquí la clave son los modificadores que he marcado en otro color en la línea anterior que le indican a VirtualBox que debe modificar el disco y compactarlo, buscando el espacio libre al final y reduciendo el disco hasta que no quede espacio sin usar.

¡Voilà! Ahora el disco de tu máquina virtual habrá reducido su tamaño en muchos GB quedando más espacio libre para otras máquinas virtuales.

¡Espero que te sea útil!

José Manuel Alarcón José Manuel Alarcón
Fundador de campusMVP.es, el proyecto de referencia en formación on-line para programadores en lengua española. Autor de varios libros y cientos de artículos. Galardonado como MVP de Microsoft desde 2004. Gallego de Vigo, amante de la ciencia y la tecnología, la música y la lectura. Ayudando a la gente en Internet desde 1996.
Descarga GRATIS mi último libro (no técnico): "Tres Monos, Diez Minutos".
Banner

Comentarios (3) -

bárbaro
muy útil
incluido el subconsejo del SDelete de SysInternals

Responder

Muy buen tutorial, gracias!

Responder

Carlos Solano

Excelente tutorial!!!
Me sirvió perfectamente, pero uso Ubuntu 17.10.
Usé el siguiente comando en terminal:

sudo VBoxManage modifyhd /home/mi-usuario/VirtualBox\ VMs/mi-maquinavirtual/mi-maquinavirtual.vdi --compact

Responder

Agregar comentario