Сжатие виртуальных дисков VirtualBox Disk Image (VDI)

vdi virtualbox compact compress zerofree nightly

Сжатие виртуальных дисков VirtualBox Disk Image VDI

Ни для кого не секрет, что по умолчанию пакет виртуализации VirtualBox использует динамические диски, объем которых автоматически увеличивается до заранее определенного предела по мере того, как гостевой операционной системе требуется дополнительное пространство на виртуальном носителе. Со временем это приводит к тому, что VDI-файл разрастается до максимальных размеров, и для рационального использования дискового пространства хост-машины его приходится упаковывать.

Процедура сжатия виртуальных дисков достаточно простая и подразумевает последовательное выполнение следующих шагов.

  1. Загружается гостевая система, виртуальный носитель которой предполагается подвергнуть сжатию.

  2. В окне эмулируемого компьютера открывается браузер и загружается утилита SDelete в случае использования Windows либо ZeroFree если в гостевой системе задействован Linux.

  3. В гостевой системе открывается консоль и запускаются упомянутые инструменты, предназначенные для заполнения неиспользуемого пространства на виртуальном носителе нулями.

В Windows для очистка диска осуществляется командой:

sdelete -c

В гостевых системах на базе Linux инструкциями:

**    mount -n -o remount,ro -t ext2 /dev/sda1/**

**    mount -n -o remount,ro -t ext2 /dev/sdb1/var**

**    zerofree /dev/sda1**

**    zerofree /dev/sdb1**

Или с помощью dd:

dd if=/dev/zero of=/home/junk.tmp bs=1M count=100000; sleep 5; sync

Создаст пустой файл размером 500G или прервет работу с ошибкой “no space left on device”.

  1. Когда SDelete или ZeroFree прекратит обработку диска, потребуется завершить работу гостевой системы и в консоли самого что ни на есть настоящего компьютера выполнить команду:

VBoxManage modifyvdi имя_виртуального_диска.vdi compact

Сжатие виртуальных дисков VirtualBox Disk Image VDI

  1. После ввода команды и нажатия клавиши Enter останется только запастись терпением и дождаться завершения упаковки виртуального диска.

.....................................

27.06.13 у меня не получилось сделать это на работающей ВМ:

root@siter:~# mount -n -o remount,ro /dev/mapper/svn-root/

mount: / is busy

...................................

|1. Сжал ВМ river/nightly за 10 мин 09 сек. с размера 70445412352 до размера  70444363776 

командой: vbm modifyhd /opt/vm/nightly/nightly-disk1.vdi --compact

т.е. фактически не сжался вообще!

  1. Затем скопировал этот файл в ту-же папку - 24:52 24 мин. 52 сек.

  2. Сжал командой: zip -9 nightly.zip nightly2.vdi время \- 3:55:23 до размера 20276995149 71%

сжатие хорошее, но очень долго!

  1. Скопировал с river на shelter за 05:41 скорость ~50Mb/s 26.07.13 | |--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|