Виртуализация · 5 min read · Jan 19, 2026

Создание виртуальных образов RedHat/CentOS/Scientific Linux/Fedora для KVM с помощью BoxGrinder (Fedora 17)

Создание виртуальных образов RedHat/CentOS/Scientific Linux/Fedora для KVM с помощью BoxGrinder (Fedora 17)

Версия 1.0
Автор: Фалко Тимме
Следите за мной в Twitter

BoxGrinder — это инструмент, который позволяет вам создавать виртуальные машины (с RedHat, CentOS, Scientific Linux или Fedora в качестве ОС) для различных технологий виртуализации. В настоящее время он поддерживает KVM, VMware, Amazon EC2, VirtualBox и VirtualPC. Этот учебник показывает, как использовать BoxGrinder для создания гостевой системы CentOS 6 на KVM в Fedora 17, а также как развернуть ее на удаленном KVM-хосте.

Я не даю никаких гарантий, что это сработает для вас!

1 Предварительная заметка

В настоящее время BoxGrinder доступен в виде пакета для Fedora 17, но не для RedHat/CentOS/Scientific Linux 6. Поэтому я использую систему Fedora 17 для создания гостевой системы CentOS KVM, которую вы можете запустить локально (если вы используете Fedora 17 в качестве своей KVM-платформы) или перенести на удаленный KVM-хост (вы можете сделать это вручную, передав файл образа и файл определения XML гостя на удаленный хост, но BoxGrinder также имеет встроенную функцию, которая позволяет сделать это автоматически).

2 Установка BoxGrinder

Войдите в свою систему Fedora как пользователь root и выполните:

yum install rubygem-boxgrinder-build

3 Использование BoxGrinder

Вы можете узнать о плагинах BoxGrinder и поддерживаемых гостевых операционных системах, выполнив:

boxgrinder-build --version
[root@localhost ~]# boxgrinder-build --version  
BoxGrinder Build 0.10.4  
  
Доступные плагины ОС:  
 - rhel плагин для Red Hat Enterprise Linux  
 - centos плагин для CentOS  
 - fedora плагин для Fedora  
 - sl плагин для Scientific Linux  
  
Доступные плагины платформ:  
 - vmware плагин для VMware  
 - ec2 плагин для Amazon Elastic Compute Cloud (Amazon EC2)  
 - virtualbox плагин для VirtualBox  
 - virtualpc плагин для VirtualPC  
  
Доступные плагины доставки:  
 - s3 плагин для Amazon Simple Storage Service (Amazon S3)  
 - cloudfront плагин для Amazon Simple Storage Service (Amazon S3)  
 - ami плагин для Amazon Simple Storage Service (Amazon S3)  
 - sftp плагин для SSH File Transfer Protocol  
 - ebs плагин для Elastic Block Storage  
 - local плагин для локальной файловой системы  
 - elastichosts плагин для ElasticHosts  
 - openstack плагин для OpenStack  
 - libvirt плагин для libvirt Virtualisation API  
[root@localhost ~]#

KVM поддерживается по умолчанию, поэтому он не указан как плагин.

Чтобы узнать, как использовать BoxGrinder, вы можете ввести:

boxgrinder-build -h
[root@localhost ~]# boxgrinder-build -h  
Использование: boxgrinder-build [файл определения устройства] [опции]  
  
Инструмент для создания образов ВМ из простых файлов определения.  
  
Домашняя страница:  
    http://boxgrinder.org/  
  
Документация:  
    http://boxgrinder.org/tutorials/  
  
Примеры:  
    $ boxgrinder-build jeos.appl  
    $ boxgrinder-build jeos.appl -f  
    $ boxgrinder-build jeos.appl --os-config format:qcow2  
    $ boxgrinder-build jeos.appl -p vmware --platform-config type:personal,thin_disk:true  
    $ boxgrinder-build jeos.appl -p ec2 -d ami  
    $ boxgrinder-build jeos.appl -p vmware -d local  
  
Опции:  
    -p, --platform [TYPE]          Имя платформы, в которую вы хотите конвертировать.  
    -d, --delivery [METHOD]        Метод доставки для выбранного устройства.  
    -f, --force                    Принудительное создание образа - удаляет все предыдущие сборки для выбранного устройства. По умолчанию: false.  
  
Опции конфигурации плагина:  
    -l, --plugins [PLUGINS]        Список дополнительных плагинов, разделенных запятыми. По умолчанию: пусто.  
        --os-config [CONFIG]         Конфигурация плагина операционной системы в формате: key1:value1,key2:value2.  
        --platform-config [CONFIG]   Конфигурация плагина платформы в формате: key1:value1,key2:value2.  
        --delivery-config [CONFIG]   Конфигурация плагина доставки в формате: key1:value1,key2:value2.  
  
Опции ведения журнала:  
        --debug                      Печатает отладочную информацию во время сборки. По умолчанию: false.  
        --trace                      Печатает трассировочную информацию во время сборки. По умолчанию: false.  
    -b, --backtrace                Печатает полный трассировочный вывод, если возникают ошибки во время сборки. По умолчанию: true, если журнал консоли установлен на debug или trace, иначе false.  
  
Общие опции:  
        --change-to-user           Переключиться с root на локального пользователя после завершения плагина ОС.  
        --help                     Показать это сообщение.  
        --version                  Печать версии.  
[root@localhost ~]#

В основном это работает так: вы создаете файл определения устройства (например, centos.appl) в каталоге (например, /usr/local/appliances):

mkdir /usr/local/appliances  
cd /usr/local/appliances/  
vi centos.appl

Этот файл определения устройства описывает наш KVM-устройство (например, имя, операционная система (в настоящее время поддерживаются RedHat, CentOS, Scientific Linux и Fedora), пароль root, количество ЦП, ОЗУ, разделы (числа означают размер в ГБ) и пакеты, которые BoxGrinder будет устанавливать автоматически при создании виртуальной машины):

| name: centos-6-lamp summary: CentOS 6 LAMP version: 1 release: 0 os: name: centos version: 6 password: secret hardware: cpus: 2 memory: 1024 partitions: "/": size: 4 "/var": size: 10 "swap": size: 0.5 packages: - @core - @web-server - @mysql - acpid default_repos: true # по умолчанию true |

Пакеты, начинающиеся с @, не являются отдельными пакетами, а представляют собой группы пакетов. Вы можете узнать о доступных группах пакетов, выполнив

yum grouplist -v

на системе, которая работает под той же операционной системой, которую вы хотите использовать в своем устройстве.

Имена групп пакетов находятся в скобках.

Пакеты, не начинающиеся с символа @, не являются группами пакетов, а именно теми самыми пакетами.

BoxGrinder всегда будет устанавливать последнюю доступную версию операционной системы, т.е. если вы укажете CentOS 6, это означает, что будет установлена версия 6.3 (6.3 — последняя версия CentOS на момент написания этого текста).

Теперь вы можете вызвать BoxGrinder следующим образом (убедитесь, что вы находитесь в том же каталоге, где находится centos.appl):

boxgrinder-build centos.appl

По умолчанию BoxGrinder создает сырые образы. После сборки вы можете найти образ и XML-определение в каталоге build/appliances/////1.0/-plugin/ - в моем случае это переводится в build/appliances/i686/centos/6/centos-6-lamp/1.0/centos-plugin/:

ls -l build/appliances/i686/centos/6/centos-6-lamp/1.0/centos-plugin/
[root@localhost appliances]# ls -l build/appliances/i686/centos/6/centos-6-lamp/1.0/centos-plugin/  
total 863308  
-rwxr-xr-x. 1 root root 15569256448 Oct  5 11:44 centos-6-lamp-sda.raw  
-rw-r--r--. 1 root root         475 Oct  5 11:42 centos-6-lamp.xml  
[root@localhost appliances]#

Чтобы создать устройство в формате qcow2, вы можете использовать

boxgrinder-build centos.appl --os-config format:qcow2

вместо:

ls -l build/appliances/i686/centos/6/centos-6-lamp/1.0/centos-plugin/
[root@localhost appliances]# ls -l build/appliances/i686/centos/6/centos-6-lamp/1.0/centos-plugin/  
total 1628824  
-rw-r--r--. 1 root root   784007168 Oct  5 11:52 centos-6-lamp-sda.qcow2  
-rw-r--r--. 1 root root         481 Oct  5 11:51 centos-6-lamp.xml  
[root@localhost appliances]#

Теперь вы можете взять образ и скопировать его в /var/lib/libvirt/images на вашем KVM-хосте, а файл XML скопировать в /etc/libvirt/qemu/ на KVM-хосте, открыть virsh и определить новую виртуальную машину из файла XML, но вместо того, чтобы делать это вручную, вы можете заставить BoxGrinder сделать это за вас (с помощью переключателя -d):

Например, если вы хотите добавить устройство в вашу локальную установку KVM, выполните:

boxgrinder-build centos.appl --os-config format:qcow2 -d libvirt

Это скопирует образ непосредственно в каталог /var/lib/libvirt/images…

ls -l /var/lib/libvirt/images
[root@localhost appliances]# ls -l /var/lib/libvirt/images  
total 765636  
-rw-r--r--. 1 root root 784007168 Oct  5 11:55 centos-6-lamp-sda.qcow2  
[root@localhost appliances]#

… и файл XML в каталог /etc/libvirt/qemu/:

ls -l /etc/libvirt/qemu/
[root@localhost appliances]# ls -l /etc/libvirt/qemu/  
total 8  
-rw-------. 1 root root 2135 Oct  5 11:55 centos-6-lamp-1-0-centos-6-i686-raw.xml  
drwx------. 3 root root 4096 Jun 28 15:52 networks  
[root@localhost appliances]#
Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.