VirtualBox le permite ejecutar Linux en una máquina virtual y, a menudo, encontrará que sus discos virtuales crecen continuamente en tamaño, aunque los haya estado limpiando de archivos. Le mostraré cómo reducir estos volúmenes a su tamaño, compactándolos y ahorrando espacio en disco.
Si ha utilizado VirtualBox con invitados de Windows (en la terminología de máquinas virtuales, el "invitado" es el sistema operativo que se ejecuta dentro de la máquina virtual) , probablemente esté acostumbrado a que los volúmenes de su disco VirtualBox se reduzcan a medida que elimina archivos, de modo que solo utilicen tanto espacio en su disco físico como necesiten para contener los archivos que contienen.
Este es el propósito previsto de la función de asignación dinámica de VirtualBox, pero no funciona con invitados de Linux. Cuando utilizan invitados de Linux, muchos usuarios descubren que los discos crecen hasta su tamaño completo y luego nunca vuelven a reducirse a medida que se eliminan los archivos.
Esto se debe a cómo Linux administra sus sistemas de archivos y cómo interactúa con su host VirtualBox. Linux no "pone a cero" (sobrescribe con datos vacíos) los archivos cuando se eliminan por razones de rendimiento, por lo que VirtualBox no tiene forma de saber qué datos en un disco virtual son datos activos y cuáles se eliminan.
Puede resolver este problema poniendo a cero esos datos usted mismo y diciéndole a VirtualBox que compacte el volumen y lo reduzca a su tamaño real. Así es como se hace.
Lo primero que debe hacer para recuperar espacio en disco de los discos virtuales de sus invitados Linux es asegurarse de que la asignación dinámica esté habilitada. De lo contrario, deberá convertir su disco en un disco asignado dinámicamente.
A continuación, haga una copia de seguridad de su disco virtual. Si algo sale mal (como un comando mal escrito o un corte de energía en mitad del proceso), corre el riesgo de perder todos los datos de su invitado Linux.
A continuación, en su invitado Linux ejecute el siguiente comando en la terminal:
sudo dd if=/dev/zero of=/var/deleteme
Este comando escribirá datos eliminados (vacíos) en el archivo /var/deleteme hasta que el disco esté completamente lleno. Esto sobrescribe todos los archivos eliminados anteriormente, resolviendo el problema de que Linux no sobrescribe los datos eliminados automáticamente.
¡Tenga cuidado al usar el comando dd ya que sobrescribirá los datos sin previo aviso! Verifique sus comandos y rutas cuidadosamente antes de ejecutarlos.
Este proceso puede tardar algún tiempo dependiendo del tamaño del volumen, así que tenga paciencia y no lo interrumpa. Una vez que haya terminado, el proceso se cerrará (posiblemente con un error que indique que no hay espacio). Una vez que esto haya sucedido, puede eliminar el archivo puesto a cero y apagar su invitado de Linux:
sudo rm -rf /var/deletemesudo shutdown now -h
Ahora el espacio no utilizado en su disco virtual se pone a cero y VirtualBox podrá recuperar el espacio en su host reduciéndolo. El último paso es utilizar el comando vboxmanage para compactar la imagen del disco virtual. Haga esto ejecutando:
vboxmanage modifymedium disk /path/to/image.vdi -compact
Debe cambiar /ruta/a/image.vdi a la ruta del disco virtual que desea compactar. Si está en Windows, necesitará usar VBoxManage.exe así:
VBoxManage.exe modifymedium disk /path/to/image.vdi -compact
Si VBoxManage.exe no está disponible desde la línea de comandos de su sistema Windows, siga leyendo para obtener instrucciones sobre cómo habilitarlo.
Este método para compactar un invitado de VirtualBox Linux utiliza el comando dd para escribir un archivo vacío en el disco para que VirtualBox pueda identificar el espacio vacío.
El comando dd (duplicador de datos) convierte y copia archivos, y también se puede utilizar para escribir datos. La opción "if" que se le pasa proporciona el archivo de entrada (en este caso /dev/zero proporciona un flujo constante de datos de valor cero o datos nulos). La opción "de" especifica el archivo de salida y este flujo de datos cero se escribe en él. Esto continuará hasta que el disco esté lleno ya que /dev/zero nunca deja de proporcionar datos nulos.
De forma predeterminada, VBoxManage.exe no está disponible en la línea de comandos de Windows. Puede agregarlo actualizando la ruta de su sistema Windows para incluir el directorio de instalación de VirtualBox, o llamando a la ruta completa al ejecutable cuando lo use:
& "C:/Path/To/VBoxManage.exe" modifymedium disk /path/to/image.vdi -compact
El símbolo "&", llamado operador de llamada, que ejecuta el comando citado. Esto le permite utilizar espacios en la ruta al ejecutable.
A medida que sus invitados crecen, puede aumentar el tamaño de sus discos virtuales y reducirlos. La creación de instantáneas le permite tomar el estado de su máquina virtual en un momento determinado y guardarlo; Si luego quieres volver a cómo estaban las cosas en ese momento exacto (por ejemplo, después de probar un cambio de configuración), simplemente puedes retroceder y todo volverá a ser como estaba.
VirtualBox es una poderosa herramienta de virtualización que los desarrolladores utilizan profesionalmente para crear y probar software, y los usuarios domésticos para ejecutar software y juegos antiguos en computadoras modernas, o ejecutar otros sistemas operativos sin tener que comprar una segunda máquina. . Puede ejecutar Windows, Linux, ChromeOS, Android y otros sistemas operativos en hosts MacOS, Windows y Linux.
Tus cambios se han guardado
Se envió el correo electrónico
El correo electrónico ya se envió
Verifica tu dirección de correo electrónico.
Enviar correo electrónico de confirmaciónHas alcanzado el máximo de temas seguidos en tu cuenta.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3