Почему это происходит? Объяснение простое: на дисках виртуальных машин создаются какие-то временные файлы во время работы. Эти файлы успешно удаляются, но удаляется заголовок, а тело файла остаётся в неизменном виде на своём месте. Да, это место считается пустым с точки зрения виртуальной машины, и туда может быть записан какой-то новый файл при необходимости. Но с точки зрения гипервизора это место остаётся всё так же занятым, поэтому архиватору придётся попыхтеть напрасно, сжимая никому не нужную информацию.
вобщем спасает
очистка нулями незанятого пространства диска. Это действие можно сделать двумя способами.
Способ первый - через файловую систему. Необходимо внутри образа создать файл, заполненный нулями, максимально большого размера. А затем его удалить. Для этого необходимо загрузить гостевую систему (предполагается, что там установлен Linux) и под пользователем root выполнить команду:
dd if=/dev/zero of=/var/tmp/bigemptyfile bs=4096k ;
rm /var/tmp/bigemptyfile
потом в windows
cd C:\Program Files\Oracle\VirtualBox
VboxManage.exe modifyhd "D:\path\to\dir\your_disk.vdi" --compact
//////////