Виртуализация · 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-build3 Использование 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/
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]#Get new posts in your inbox
No spam. Unsubscribe anytime.