De forma predeterminada, VirtualBox crea discos dinámicos que crecen con el tiempo a medida que agrega datos. Sin embargo, si elimina datos de la máquina virtual más tarde, notará que el disco no se reduce automáticamente. Pero puede reducir manualmente un disco dinámico mediante un comando oculto.
Recuerde que esto solo reducirá el disco si ha crecido en tamaño y desde entonces ha eliminado datos. Por lo tanto, si acaba de crear un disco dinámico, esto no lo reducirá. Pero, si ha creado un disco dinámico, descargado 10 GB de datos en él y luego eliminado esos 10 GB de datos después, debería poder reducir el disco en aproximadamente 10 GB.
¿De qué vamos a hablar?
- 1 Paso uno: Asegúrese de que está utilizando un disco dinámico
- 2 Paso dos: Escribir ceros en el disco en la máquina virtual
- 3 Paso tres: Buscar el comando VBoxManage
- 4 Paso cuatro: Localice la ruta de acceso al disco que desea compactar
- 5 Paso cinco: Compactar el disco
- 6 Considere también la posibilidad de eliminar instantáneas
Paso uno: Asegúrese de que está utilizando un disco dinámico
Este proceso solo funciona para discos dinámicos, que pueden crecer y reducirse de tamaño. Los discos dinámicos pueden tener hasta un cierto tamaño máximo (50 GB, por ejemplo), pero en realidad solo crecen a ese tamaño máximo cuando contienen tantos datos. Los discos de tamaño fijo siempre serán su tamaño máximo.
Si tiene un disco de tamaño fijo que desea reducir, primero puede convertirlo en un disco dinámico y luego seguir las instrucciones a continuación. Por ejemplo, si tiene un disco fijo de 50 GB de tamaño con solo 20 GB de datos y lo convierte en un disco dinámico, debería poder reducirlo para ocupar solo 20 GB de espacio.
Para comprobar si un disco es dinámico o de tamaño fijo en VirtualBox, haga clic con el botón derecho en la máquina virtual que utiliza el disco y seleccione “Configuración”. Haga clic en la pestaña “Almacenamiento” y seleccione el disco. Verá qué tipo de disco se muestra junto a “Detalles”. Por ejemplo, en la captura de pantalla a continuación, “Almacenamiento asignado dinámicamente” indica que se trata de un disco dinámico.
Paso dos: Escribir ceros en el disco en la máquina virtual
Asegúrese de eliminar los datos que ya no desee en el disco dentro de la máquina virtual para liberar espacio antes de continuar. Elimine los archivos que no necesita, desinstale los programas que ya no usa y vacíe la Papelera de reciclaje. Luego, deberá sobrescribir ese espacio vacío con ceros.
Para sistemas operativos invitados Windows
Si tiene Windows instalado dentro de la máquina virtual, ahora debe arrancar la máquina virtual y desfragmentar sus discos. Dentro de la máquina virtual, busque “Desfragmentación” en el menú Inicio e inicie la herramienta “Desfragmentador de disco” o “Desfragmentar y optimizar unidades”. Seleccione el disco que desea compactar y haga clic en “Desfragmentar disco”.
Una vez finalizado el proceso de desfragmentación, deberá escribir ceros en el espacio vacío dentro de la máquina virtual. Al eliminar archivos, los datos eliminados siguen almacenados en el disco, por lo que VirtualBox no puede reducir automáticamente la unidad. Pero, cuando escribe ceros sobre los archivos eliminados, VirtualBox verá una gran cantidad de ceros(espacio vacío, en otras palabras) y podrá compactar el disco.
Para ello, descargue el SDelete utilidad de Microsoft. Extraiga el sdelete.exe
en una carpeta del equipo.
Abra una ventana del símbolo del sistema. Para hacerlo, abra el menú Inicio, busque “Símbolo del sistema” e inicie el acceso directo.
Cambiar al directorio que contiene el sdelete.exe
archivo escribiendo cd
, pulsando Espacio, introduciendo la ruta de acceso al directorio y presionando Intro. Asegúrese de adjuntar la ruta entre comillas si contiene un carácter de espacio. Debería verse así:
cd "C:/path/to/folder"
Por ejemplo, si extrajo el sdelete.exe
en la carpeta de descarga de su cuenta de usuario y su nombre de usuario de Windows es Bob, ejecutaría el siguiente comando:
cd "C:/Users/bob/Downloads"
Para completar rápidamente la ruta del directorio, simplemente escriba cd
en la ventana del símbolo del sistema, presione Espacio y, a continuación, arrastre y suelte el icono de carpeta desde la barra de direcciones del administrador de archivos.
Ejecute el siguiente comando:
sdelete.exe c: -z
Esto escribirá ceros en todo el espacio libre en disco de la unidad C:. Si desea reducir una unidad secundaria ubicada en una letra de unidad diferente en la máquina virtual, escriba su letra de unidad en lugar de c:. Para esto fue diseñada la herramienta. Como señala la página SDelete en el sitio web de Microsoft, la opción -z es “buena para la optimización del disco virtual”.
Se le pedirá que acepte el acuerdo de licencia de la herramienta antes de continuar. Simplemente haga clic en “Aceptar”.
Espere a que se complete el proceso. Cuando haya terminado, apague su máquina virtual usando la opción “Apagar” en su menú Inicio. Ahora estás listo para compactarlo.
Para sistemas operativos invitados Linux
Si tiene Linux instalado en la máquina virtual, en otras palabras, un sistema operativo invitado Linux en lugar de un sistema operativo invitado Windows, puede omitir el proceso de desfragmentación y usar comandos integrados para poner a cero el espacio libre en la unidad. Usaremos Ubuntu como ejemplo aquí, pero el proceso will ser similar en otras distribuciones de Linux.
Para hacer esto, primero deberá instalar el zerofree
dentro de la máquina virtual. Debería estar disponible en los repositorios de software de su distribución linux. Por ejemplo, puede instalarlo en Ubuntu ejecutando el siguiente comando en el terminal dentro de su máquina virtual:
sudo apt install zerofree
En realidad, no puedes usar zerofree
en su / partición mientras se inicia en el entorno Linux estándar. En su lugar, querrá arrancar en un modo de recuperación especial donde su partición raíz normal no esté montada. En Ubuntu, reinicie su máquina virtual y presione repetidamente la tecla “Esc” mientras se inicia para acceder al menú Grub. Cuando aparezca el menú Grub, seleccione “* Opciones avanzadas para Ubuntu” y presione Enter.
Seleccione la opción “(modo de recuperación)” asociada con el kernel de Linux más reciente, es decir, la opción con el número de versión más alto cerca de la parte superior de la lista, y presione Entrar.
Seleccione “root” en el menú de recuperación para arrancar en un mensaje de root shell.
Presione “Enter” después cuando aparezca “Presione Enter para mantenimiento” en su pantalla. Se le dará un mensaje de terminal.
En la línea de comandos, determine qué disco virtual desea poner a cero ejecutando el siguiente comando:
df
En la salida a continuación, podemos ver que /dev/sda1
es nuestro único dispositivo de disco real aquí. Lo sabemos porque es el único disco con /dev/
en la columna más a la izquierda.
Suponiendo que su máquina virtual se creó con la configuración predeterminada, solo tendrá /dev/sda1
, que es la primera partición en el primer disco duro. Si ha configurado las cosas de manera diferente con varios discos o varias particiones, es posible que deba poner a cero otra partición o cero particiones múltiples.
Ahora está listo para poner a cero el disco. Ejecute el siguiente comando, reemplazando /dev/sda1
con el nombre del dispositivo de la partición en la que desea escribir ceros. La mayoría de las personas solo tendrán un /dev/sda1
dispositivo a cero.
zerofree -v /dev/sda1
Cuando finalice el proceso cero, ejecute el siguiente comando para apagar la máquina virtual:
halt
Cuando vea el mensaje “Sistema detenido” en su pantalla, el sistema se ha detenido y ahora puede apagar su máquina virtual. Cierre la ventana de la máquina virtual y seleccione “Apagar la máquina virtual”.
Paso tres: Buscar el comando VBoxManage
El resto del proceso se realizará fuera de la máquina virtual, en su sistema operativo host. Por ejemplo, si tiene Windows 10 ejecutándose en su PC y Windows 7 ejecutándose en una máquina virtual, realizaría el resto del proceso en Windows 10.
Esta opción no está expuesta en la interfaz gráfica de VirtualBox. En su lugar, tienes que usar el VBoxManage.exe
mandar.
Busque este comando para continuar. En Windows, lo encontrará en el directorio del programa VirtualBox, que es C:/Program Files/Oracle/VirtualBox
por defecto. Si instaló VirtualBox en otro directorio, busque allí en su lugar.
Abra una ventana del símbolo del sistema. Para ello, abra el menú Inicio, escriba cmd
y pulse Intro.
Tipo cd
en el símbolo del sistema, seguido de la ruta de la carpeta donde se encuentra el comando VBoxManage. Tendrás que adjuntarlo entre comillas.
Puede hacer esto rápidamente escribiendo cd
en la ventana del símbolo del sistema y, a continuación, arrastre y suate el icono de carpeta desde la barra de direcciones del administrador de archivos en el símbolo del sistema.
Si usas la ruta predeterminada, debería tener el siguiente aspecto:
cd "C:/Program Files/Oracle/VirtualBox"
NOTA: Estas instrucciones suponen que está utilizando VirtualBox en Windows. Si está utilizando VirtualBox en macOS o Linux, puede abrir una ventana de Terminal y ejecutar el vboxmanage
comando normalmente, como lo haría cualquier otro comando.
Paso cuatro: Localice la ruta de acceso al disco que desea compactar
Ejecute el siguiente comando en la ventana del símbolo del sistema para ver una lista de todos los discos duros virtuales del equipo:
VBoxManage.exe list hdds
Revise la lista e identifique la ruta del archivo al disco virtual que desea compactar. Digamos que queremos modificar el disco virtual asociado a la máquina virtual denominada “Windows 7”. Como podemos ver en la salida a continuación, la ruta a ese disco virtual en nuestro sistema es C:/Users/chris/VirtualBox VMs/Windows 7/Windows 7.vdi
.
Paso cinco: Compactar el disco
Para compactar el disco, deberá usar VBoxManage.exe
con el comando correcto. Simplemente ejecute el siguiente comando, reemplazando la ruta al archivo VDI del disco con la ruta al disco en su sistema que encontró usando el comando anterior. Asegúrese de adjuntar la ruta del archivo entre comillas si contiene un espacio en cualquier parte de su ruta.
Debería verse así:
VBoxManage.exe modifymedium disk "C:/path/to/disk.vdi" --compact
Por ejemplo, dado que la ruta de acceso al archivo es C:/Users/chris/VirtualBox VMs/Windows 7/Windows 7.vdi
en nuestro ejemplo, ejecutaríamos el siguiente comando:
VBoxManage.exe modifymedium disk "C:/Users/chris/VirtualBox VMs/Windows 7/Windows 7.vdi" --compact
VirtualBox comp com com1actúe el disco y puede iniciar inmediatamente la máquina virtual después, si lo desea. La cantidad de espacio que termine ahorrando depende de la cantidad de espacio vacío que había que recuperar.
Considere también la posibilidad de eliminar instantáneas
VirtualBox le permite crear instantáneas para cada máquina virtual. Estos contienen una imagen completa de la máquina virtual cuando creó la instantánea, lo que le permite restaurarla a un estado anterior. Estos pueden tomar mucho espacio.
Para liberar más espacio, elimina las instantáneas que no uses. Para ver las instantáneas que ha guardado para una máquina virtual, selecciónelas en la ventana principal de VirtualBox y haga clic en el botón “Instantáneas” a la derecha de Detalles en la barra de herramientas. Si ya no necesita una instantánea, haga clic con el botón derecho en ella en la lista y seleccione “Eliminar instantánea” para liberar espacio.