Tengo una máquina virtual Virtualbox, con un .vdi que ocupa 49 GB en la máquina host.
Es posible que haya usado esa cantidad de espacio dentro de la máquina virtual una vez, pero ahora solo estoy usando alrededor de 6 GB.
Probé este comando para virtualbox:
vboxmanage modifyhd /path/to/disk.vdi --compact
Comenzó a funcionar 0%...10%...100%. Pero en realidad no pasó nada, el .vdi todavía tenía 49 GB.
Luego ejecuté 'df -h' en la VM y encontré esto:
root@mypc# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/mypc-root 2.0T 38G 1.9T 2% /
udev 1.3G 4.0K 1.3G 1% /dev
tmpfs 502M 784K 501M 1% /run
none 5.0M 0 5.0M 0% /run/lock
none 1.3G 160K 1.3G 1% /run/shm
/dev/sda1 228M 31M 185M 15% /boot
/home/someuser/.Private 2.0T 38G 1.9T 2% /home/someuser
No sé por qué usa 38 GB allí.
Limpié la papelera pero no sirvió de nada.
¿Alguna idea sobre qué más puedo hacer?
La VM tiene Ubuntu 12, con LVM cifrado y inicio (ese es el directorio .Private). El anfitrión tiene Windows 7.
ACTUALIZAR
Pude liberar espacio para /dev/sda1, pero no para /dev/mapper/mypc-root. Zerofree comienza y nunca termina, aunque puedo decir que el disco dejó de escribir porque deja de hacer ruido después de un minuto.
Aquí está el resultado de 'df -ih'
root@mypc:/home/someuser# df -ih
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/mapper/mypc-root 128M 208K 128M 1% /
udev 311K 495 310K 1% /dev
tmpfs 314K 428 314K 1% /run
none 314K 4 314K 1% /run/lock
none 314K 7 314K 1% /run/shm
/dev/sda1 122K 230 122K 1% /boot
/home/someuser/.Private 128M 208K 128M 1% /home/someuser
Respuesta1
Desde elmanual:
Para que esta operación sea efectiva, es necesario que primero se ponga a cero el espacio libre en el sistema invitado utilizando una herramienta de software adecuada. Para los invitados de Windows, puede utilizar la
sdelete
herramienta proporcionada por Microsoft. Ejecutesdelete -c
en el invitado para poner a cero el espacio libre en el disco antes de comprimir la imagen del disco virtual. Para Linux, utilice lazerofree
utilidad que admite sistemas de archivos ext2/ext3.
Respuesta2
Con respeto arespuesta original que tenía esta solución:
En la máquina virtual:
dd if=/dev/zero of=test.file
sync
rm test.file
En la máquina anfitriona:
VBoxManage modifyhd --compact your_image_path.vdi
Esta es la única solución que he probado que funciona. Los zerofree
y sfill
(de secure-delete
) no funcionan en mi máquina virtual Debian (host de Windows 10).
Respuesta3
Creo que el núcleo de su problema es que su sistema de archivos raíz ( /
) tiene un tamaño de 2 TB. Con un sistema de archivos tan grande, la sobrecarga relativamente pequeña (inodos y demás) sigue siendo bastante grande (>32 GB, en su caso).
Si desea reducir su disco virtual, primero deberá reducir su sistema de archivos raíz.