Сжатие виртуальных машин VirtualBox

Рейтинг:  5 / 5

Звезда активнаЗвезда активнаЗвезда активнаЗвезда активнаЗвезда активна
 

virtualboxДаный урок - это пример личного опыта сжатия виртуальных машин *.vdi VirtualBox. Данный метод используется для уменьшения размера образов, для более легкой загрузки и распространения их в сети интернет. В результате этих действий Вы получите готовую, сжатую виртуальную машиную, без изменения её рабочих свойств и возвожностей. (Данный способ применим для Linux систем)

Весь процесс сжатия образов виртуальных машин поделен на два действия, это заполнение не используемых секторов образа "0". И второй - это сжатие самого образа.

Заполнение неиспользуемого пространства нулями

В начале нашей работы мы должны определить, смонтированную файловую системы мы должны обнулить. Для этого в консоли нашего системы / сервер выполним команду:

  • df

Результат команды, я покажу на пример только что установленной системы Fedora 15 (сервер):

[root@server1 ~]# df
Файловая система     1K-блоков      Исп  Доступно  Исп% Точка монтирования
rootfs                 6257164   2452776   3486540  42% /
udev                    372792         0    372792   0% /dev
tmpfs                   381680         0    381680   0% /dev/shm
tmpfs                   381680       572    381108   1% /run
/dev/mapper/vg_server1-lv_root
                       6257164   2452776   3486540  42% /
tmpfs                   381680         0    381680   0% /sys/fs/cgroup
tmpfs                   381680         0    381680   0% /media
/dev/sda1               495844     31095    439149   7% /boot
[root@server1 ~]#

Из этого следует, что наша файловая система - это /dev/mapper/vg_server1-lv_root. Теперь мы можем выполнить обнуление файловой системы. Прописав в консоле следующие команды:

  • dd if=/dev/mapper/vg_server1-lv_root of=junk
  • sync
  • rm junk

В данных командах мы создаем файл который заполнит весь виртуальный образ системы, тем самым мы займем всю оставшуеся память нашего виртуалього диска файлом junk (файл junk предназначен для заполнения неиспользуемого пространства на виртуальном носителе нулями). Так как файл состоит из одних нулей, то при удалении его мы оставим полностью зануленый виртуальный образ. И ожидаем окончания процесса.

Сжатие виртуальных машин VirtualBox

Для сжатия виртуальной машины VirtualBox используется менеджер VBoxManage предоставляемый вместе с VirtualBox (в корневом каталоге, где установлена VirtualBox). Если не сделать этого, Вы увидите:

"VBoxManage" не является внутренней или внешней командой, используемой программой или пакетным файлом.

Но обращение к VBoxManage полностью осуществляется через консоль рабочей системы (не путать с консолью виртуальной системы). Поэтому нам необходимо добавить переменные в патч нашей рабочей системы. Так как я использую Windows 7, то для добавления переменной я нажимаю на иконку Компьютер (не ярлык) в пуске правой клавишей мыши - Свойства - в открывшемся окне в левой колонке Дополнительные параметры системы - в окне Свойства системы нажмем на кнопку Переменные среды... - в списке системные переменные находим переменную Path - Изменить... - и добавляем путь к переменной ;C:\Program Files\Oracle\VirtualBox\ (путь корневой папки VirtualBox, может отличаться в Вашем случае). После чего нажимаем OK, для сохранения и закрытия окон. Теперь мы може откруть консоль Windows 7, для этого зайдем в пуск и в строке найти программы и файлы введем команду cmd, откроется консоль Windows 7.

Вот теперь мы можем выпольнить сжатие нашего образа виртуальной машины, для этого в консоли Windows 7 выполним команду:

  • VBoxManage modifyvdi "C:\Users\Forsage\VirtualBox VMs\CentOS_5.6 64x LAMP\CentOS_5.6 64x LAMP.vdi" compact

Где: C:\Users\Forsage\VirtualBox VMs\CentOS_5.6 64x LAMP\CentOS_5.6 64x LAMP.vdi - это полный путь к сжимаемому образу виртуальной машины (Сама виртуальная машина должна быть выключена, в противной случае работа из консоли Windows 7 с этим образом будет не доступной). Так как в пути встречаются пробелы мы должны заключить весь путь в скобки, как это и сдеалано в нашем примере. Процесс сжатия, будет отображаться в консоли от 0 до 100%:

Сжатие VirtualBox