¿Cómo reducir el tamaño de la VM?

¿Cómo reducir el tamaño de la VM?

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 sdeleteherramienta proporcionada por Microsoft. Ejecute sdelete -cen el invitado para poner a cero el espacio libre en el disco antes de comprimir la imagen del disco virtual. Para Linux, utilice la zerofreeutilidad que admite sistemas de archivos ext2/ext3.

Respuesta2

Con respeto arespuesta original que tenía esta solución:

En la máquina virtual:

  1. dd if=/dev/zero of=test.file
  2. sync
  3. rm test.file

En la máquina anfitriona:

  1. VBoxManage modifyhd --compact your_image_path.vdi

Esta es la única solución que he probado que funciona. Los zerofreey 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.

información relacionada