Как уменьшить размер виртуальной машины?

Как уменьшить размер виртуальной машины?

У меня есть виртуальная машина Virtualbox с расширением .vdi, которая занимает 49 ГБ на хост-машине.

Возможно, когда-то я использовал столько места внутри виртуальной машины, но сейчас я использую только около 6 ГБ.

Я попробовал эту команду для virtualbox:

vboxmanage modifyhd /path/to/disk.vdi --compact

Он начал работать на 0%..10%.....100%. Но на самом деле ничего не произошло, .vdi все еще был 49 ГБ.

Затем я запустил «df -h» в виртуальной машине и обнаружил следующее:

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

Я не знаю, почему там используется 38 ГБ.

Я очистил Корзину, но это не помогло.

Есть идеи, что еще я могу сделать?

На виртуальной машине установлена ​​Ubuntu 12 с зашифрованным LVM и home (это каталог .Private). На хосте установлена ​​Windows 7.

ОБНОВЛЯТЬ

Мне удалось освободить место для /dev/sda1, но не для /dev/mapper/mypc-root. Zerofree начинается и никогда не заканчивается, хотя я могу сказать, что диск перестал писать, потому что он перестает издавать звуки через минуту.

Вот вывод для '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

решение1

Изруководство:

Для эффективности этой операции необходимо сначала обнулить свободное место в гостевой системе с помощью подходящего программного инструмента. Для гостевых систем Windows можно использовать инструмент, sdeleteпредоставленный Microsoft. Выполните sdelete -cв гостевой системе, чтобы обнулить свободное место на диске перед сжатием образа виртуального диска. Для Linux используйте утилиту, zerofreeкоторая поддерживает файловые системы ext2/ext3.

решение2

С уважением коригинальный ответ, который имел это решение:

В ВМ:

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

На хост-компьютере:

  1. VBoxManage modifyhd --compact your_image_path.vdi

Это единственное решение, которое я пробовал и которое работает. zerofreeИ sfill(из secure-delete) не работают на моей виртуальной машине Debian (хост Windows 10).

решение3

Я думаю, что суть вашей проблемы в том, что ваша корневая файловая система ( /) имеет размер 2 ТБ. При такой большой файловой системе относительно небольшие накладные расходы (иноды и т. п.) все равно остаются довольно большими (>32 ГБ, в вашем случае).

Если вы хотите уменьшить размер виртуального диска, сначала вам необходимо уменьшить размер корневой файловой системы.

Связанный контент