El mundo de la virtualizaciónes una de las mejores tecnologías con las cuales contamos hoy en día ya que gracias a su desarrollo nos permite montar y probar diversos sistemas operativos o aplicaciones sin necesidad de invertir recursos tanto de hardware como económicos y aun mejor es que no pondremos en riesgo el ambiente productivo de la organización o de nuestros datos. Una de las mejores tecnologías que son de soporte vital para llevar a cabo un sin número de tareas son las asociadas a la virtualización ya que gracias a esto podemos crear entornos virtuales y llevar a cabo todas las pruebas necesarias antes de conocer un programa aplicación o sistema operativo sin afectar la estabilidad de la máquina física.
Una de las aplicaciones más conocidas para este proceso es VirtualBox la cual puede ser descargada de forma gratuita en el siguiente enlace:
VirtualBox se caracteriza por su versatilidad y sencillez de uso, múltiples funciones para compartir archivos entre equipos invitados y más. Una de las principales ventajas que nos ofrece VirtualBox es la capacidad de crear discos virtual reservados de forma dinámica los cuales van incrementando su tamaño a medida que se agrega información hasta el tamaño que hemos definido al momento de la creación de la máquina virtual.
El problema con esta función es que cuando eliminamos información de dicho disco no vemos que el tamaño del disco sea reducido y seguirá ocupando el mismo tamaño, por ello hoy este tutorial analizará cómo podemos reducir el tamaño del disco duro virtual y de este modo ahorrar espacio en nuestro equipo físico.
1. Verificar el disco duro virtual
El primer paso es verificar que el disco duro virtual de la máquina seleccionada este configurado de forma dinámica ya que de lo contrario el proceso no podrá llevarse a cabo. Recordemos que un disco de tamaño fijo siempre tendrá el tamaño establecido mientras que el dinámico irá creciendo a medida que añadimos información.
Para comprobar que el disco duro virtual de la máquina es dinámico seleccionamos la máquina virtual y nos dirigimos a la opción "Configuración" y allí vamos a la sección "Almacenamiento", procedemos a seleccionar el disco duro virtual a reducir y podremos ver en el costado derecho en la línea "Detalles" el tipo de disco creado. En este caso debe decir "Almacenamiento reservado dinámicamente".
2. Borrar archivos innecesarios de máquina virtual VirtualBox
El siguiente paso consiste en arrancar la máquina virtual y allí eliminar los archivos innecesarios, vaciar la papelera y desinstalar los programas que ya no serán necesarios.
Será desplegada la siguiente ventana:
Allí seleccionamos la unidad a reducir y pulsaremos en el botón "Optimizar" y veremos que inicia el proceso de desfragmentación del disco duro:
Una vez este proceso sea finalizado debemos escribir ceros en espacio que ha sido liberado dentro de la máquina virtual y para ello usaremos la utilidad "Sdelete" la cual es desarrollada por Microsoft en el siguiente enlace:
Gracias a esta utilidad podremos convertir en cero los espacios libres en el disco duro. Una vez descargada procedemos a su extracción y veremos que contamos con la opción de ejecutar la versión de 32 o 64 bits según sea la arquitectura del equipo:
A continuación abrimos una consola del símbolo del sistema usando la combinación de teclas siguiente y en la ventana desplegada ingresar el comando cmd y pulsar Enter o Aceptar. Una vez abierta la terminal procedemos a ir al directorio donde hemos extraído Sdelete usando la sintaxis.
+ R
cd "C:\Ruta completa"
Una vez accedamos a dicho directorio ejecutaremos alguna de las siguientes líneas en base a la arquitectura del equipo:
sdelete.exe c: -z (Arquitecturas de 32 bits) sdelete64.exe c: -z (Arquitecturas de 64 bits)En este caso usaremos la opción de 64 bits. Al ejecutar este comando deberemos aceptar los términos de Sysinternals y veremos que inicia el proceso de limpieza en la unidad seleccionada:
Una vez el proceso finalice será necesario apagar la máquina virtual.
sudo apt install zerofree
Esto instalara zerofree en la unidad de booteo del sistema operativo. A continuación reiniciaremos la máquina virtual y durante el proceso de inicio pulsaremos la tecla Esc para acceder al siguiente menú donde seleccionaremos la línea "Opciones avanzadas para Ubuntu":
En la siguiente ventana seleccionaremos el kernel deseado pero el cual contiene el mensaje (recovery mode):
Pulsamos Enter y ahora seleccionaremos la línea root:
En la siguiente ventana pulsaremos Enter para acceder al modo de mantenimiento:
Ahora ingresaremos el comando df para listar las unidades disponibles en el sistema:
Por regla general al crear una máquina virtual con la configuración por defecto la línea a usar será "/dev/sda1".
Ahora era necesario ejecutar la utilidad zerofree en dicha unidad ejecutando lo siguiente:
zerofree -v /dev/sda1Podemos ver que inicia el proceso de limpieza de la unidad seleccionada. Una vez el proceso haya concluido ejecutaremos el comando "halt" para apagar la máquina virtual.
3. Borrar archivos de la máquina física con VBoxManage
Hasta este punto hemos configurado los procesos en las máquinas virtuales liberando espacio y ahora realizaremos el proceso en la máquina física. Para esto será necesario hacer uso del comando VBoxManage.exe el cual no lo encontramos en la aplicación grafica de VirtualBox.
Este comando lo encontramos en la ruta "C:\Program Files\Oracle\VirtualBox":
Ahora abrimos una consola de CMD y allí accederemos a la ruta completa donde se encuentra el ejecutable VBoxManage usando el comando cd y arrastrando el archivo directamente allí.
4. Saber la ruta donde se encuentra el disco duro virtual a compactar
Una vez accedamos a dicho directorio ejecutaremos el siguiente comando para listar todos los discos duros virtuales asociados a VirtualBox:
VBoxManage.exe list hdds
Allí veremos las distintas máquinas virtuales creadas con sus respectivos discos duros. Será necesario tener en cuenta la dirección exacta donde se encuentra alojado el disco duro y una vez conozcamos esto ejecutaremos la siguiente línea para realizar el proceso de compactado de dicho disco:
VBoxManage.exe modifymedium disk "C:\ruta.vdi" –compact
Podemos ver que inicia el proceso de compactación del disco duro virtual:
Finalmente otra de las opciones disponibles para liberar espacio es remover las instantáneas o snapshots de las máquinas creadas. Para esto seleccionaremos la máquina virtual que posee alguna instantánea y sobre dicha opción daremos clic derecho y seleccionamos la opción "Eliminar instantánea" o usaremos la combinación de teclas siguiente.
Ctrl + Shift + D
5. Configurar Memoria dinámica y memoria de tamaño fijo VirtualBox
Cuando creamos una nueva máquina virtual tenemos la opción de seleccionar alguna de las siguientes opciones con respecto al espacio del disco:
- En caso de seleccionar la opción "Tamaño fijo" hace referencia a que se definió un tamaño fijo para que VirtualBox lo use para el sistema operativo invitado. No puede crecer ni contraerse más allá de un límite establecido.
- En el caso de seleccionar la opción "Reservado dinámicamente" al crear la VM, permite que el sistema operativo aumente dinámicamente la asignación de almacenamiento.
6. Borrar espacio del disco duro en el equipo invitado VirtualBox
Para el caso de los sistemas operativos Windows, el primer paso a dar será borrar lo siguiente:
- Ir a la Papelera de reciclaje en el sistema operativo invitado y eliminar todos los archivos innecesarios.
- Desinstalar todas las aplicaciones no deseadas y eliminar todas las copias de seguridad innecesarias
Ahora, vamos a acceder al desfragmentador del disco duro, para ello damos clic derecho sobre la unidad C, seleccionamos la opción “Propiedades” y en la pestaña “Herramientas” pulsamos en el botón “Optimizar”:
Se desplegará la siguiente ventana. Allí seleccionamos el disco C y pulsamos en el botón “Optimizar” para ejecutar el proceso.
7. Borrar archivos individuales permanentemente VirtualBox
SDelete está en la capacidad de borrar permanentemente archivos individuales, directorios o múltiples objetos mediante el uso de comodines. Además de eliminar de forma segura los archivos existentes, SDelete se encarga de purgar los datos en los clústeres no asignados de un disco, es decir, los archivos que ya se han eliminado. Descargamos y extraemos el contenido del comprimido:
Abrimos una consola del símbolo del sistema como administradores y allí iremos, usando el comando cd, a la ruta donde se ha extraído SDelete y ejecutamos lo siguiente:
sdelete.exe c: -zSe desplegará el siguiente mensaje:
Pulsamos en el botón “Agree” e iniciará el proceso de limpieza del espacio en la unidad C:
Pulsamos Enter y en la siguiente ventana seleccionamos el kernel más reciente con la leyenda “recovery mode”:
En la siguiente ventana seleccionamos la línea “root”:
Pulsamos Enter y a continuación de nuevo pulsamos Enter para acceder al modo de mantenimiento y allí ejecutamos el comando “df”:
Allí encontramos una lista de todas las unidades conectadas para el invitado Linux., basta con detectar el que deseamos borrar, en este caso, es /dev/sda1 y procedemos a ejecutar lo siguiente:
zerofree -v /dev/sda1
apt install zerofree
Este código encontrará los bloques no asignados cuyo contenido de valor sea distinto de cero y los rellenará con ceros para su posterior recuperación, una vez finalizado el proceso ejecutamos lo siguiente para apagar la máquina:
shutdown -h now
8. Reclamar espacio libre en el equipo host VirtualBox
Una vez se haya liberado el espacio de almacenamiento en el sistema operativo invitado, ahora vamos a recuperar el espacio y agregarlo al sistema operativo host, para ello accedemos al símbolo del sistema como administradores y ejecutamos:
Diskpart
Dentro de Diskpart será necesario especificar la ruta del archivo de VDisk, recordemos que este archivo es el disco duro virtual para el sistema operativo invitado, con esta ruta ejecutamos la siguiente sintaxis:
select vdisk file = “V:Ruta_VDisk”
A continuación, exponemos el disco duro virtual ejecutando:
attach vdisk readonly
Procedemos a compactar el disco seleccionado:
compact vdisk
Finalmente, ejecutamos lo siguiente:
detach vdisk Exit
9. Eliminar máquina virtual y archivos VirtualBox
Normalmente, cuando no se requiere más del uso de alguna máquina virtual procedemos a eliminarla usando alguna de las siguientes opciones:
- Dando clic derecho sobre la máquina virtual y seleccionar la opción Eliminar.
- Seleccionar la máquina virtual e ir al menú “Máquina / Eliminar”.
Al seleccionar esta opción se despliega lo siguiente. Allí podremos borrar solo la máquina virtual o también borrar todos los archivos asociados a ella. Al seleccionar la opción “Eliminar todos los archivos” no siempre se libera el espacio de almacenamiento para el sistema host, de modo que se requiere conocer como liberar más espacio de almacenamiento, el cual es creado por estas máquinas virtuales y Solvetic explicará cómo llevar a cabo este proceso de forma útil.
Así, hemos conocido métodos para liberar el espacio del equipo host donde están alojadas las máquinas virtuales de VirtualBox. Con estas alternativas sin duda que reduciremos el tamaño de las máquinas virtuales optimizando el espacio tanto en la máquina física como en la virtual.