/ / ¿Por qué el archivo de imagen de disco en la computadora host no disminuye cuando elimino archivos grandes en una máquina virtual? [cerrado] - linux, virtualbox

¿Por qué el archivo de imagen de disco en la computadora host no disminuye cuando elimino archivos grandes en una máquina virtual? [cerrado] - linux, virtualbox

Instalé CentOS en el virtualbox (el sistema operativo host es Windows 7). Creé el archivo de imagen de disco que es archivos VDI (imagen asignada dinámicamente). Recientemente, cuando borro archivos enormes en CentOS, el archivo VDI en mi disco no disminuye. ¿Por qué? ¿Cómo abordar este problema?

Respuestas

5 para la respuesta № 1

VirtualBox no recupera automáticamente el espacio en disco (en el host) cuando borra archivos dentro de la VM. Para reducir la imagen del disco, necesitas

Primero, elimine todos los espacios libres (para todas las particiones y volúmenes lógicos en el disco duro) y luego apague la máquina virtual.

cat /dev/zero > z;sync;sleep 3;sync;rm -f z

Luego, use el siguiente comando para compactar el VDI.

VBoxManage modifyhd /path/to/image.vdi --compact

VBox Doc

Con la opción --compact, se puede utilizar para compactarimágenes de disco, es decir, eliminar bloques que solo contienen ceros. Esto volverá a reducir una imagen asignada dinámicamente; reducirá el tamaño físico de la imagen sin afectar el tamaño lógico del disco virtual. La compactación funciona tanto para imágenes base como para imágenes de diferencias creadas como parte de una instantánea.

BTW: Para VMWare (.vmdk), necesitas usar vmware-vdiskmanager -k xxx.vmdk hacer lo mismo.


1 para la respuesta № 2

¿Cómo puede saber el host qué sectores ofrecidos a la máquina virtual están siendo utilizados por la máquina virtual y cuáles son gratuitos?

Lo único que sabe es cuando la máquina virtual solicita un sector que aún no estaba asignado en el archivo de disco (cuando lo aumenta).

Tal vez "desfragmentación" o un procedimiento similarpodría reorganizar el uso del disco lo suficientemente bien como para decirle manualmente al host que reduzca el espacio. Hasta ahora, no conozco ningún host de VM que ofrezca esa función (y su uso siempre sería muy riesgoso).

La alternativa más simple sería clonar su máquina virtual a una nueva.