24.2. Автоматическое создание образа

Livemedia-creator автоматизирует процесс создания установочного образа. Для этого потребуется установленная система Red Hat Enterprise Linux и заранее подготовленный файл кикстарта (см. Глава 23, Кикстарт-установка).

24.2.1. Livemedia-creator

Процесс создания установочного образа в livemedia-creator включает два этапа: сначала создается временный образ дистрибутива Red Hat Enterprise Linux в соответствии с настройками в файле кикстарта, затем livemedia-creator создает загрузочный образ, с которого можно запустить установку.
Стандартное поведение можно корректировать с помощью дополнительных параметров — например, ограничиться только созданием файла образа или, наоборот, пропустить первый этап и сразу перейти к записи готового образа.

Важно

В настоящее время создание пользовательских образов в livemedia-creator поддерживается только на платформах MD64 и Intel 64 (x86_64).
Red Hat официально поддерживает только создание образов Red Hat Enterprise Linux 7. При необходимости можно создать образы предыдущих версий, но их работоспособность не гарантируется.
Раздел 24.2.4, «Примеры создания образов» содержит пример создания образа с помощью livemedia-creator. Если в системе установлен пакет lorax, дополнительную информацию можно найти на справочной странице livemedia-creator(1) и в файле README.livemedia-creator в каталоге /usr/share/doc/lorax-версия/ (где версия — номер версии пакета lorax). Для просмотра доступных параметров выполните livemedia-creator --help.

24.2.2. Установка livemedia-creator

Livemedia-creator входит в состав пакета lorax. Чтобы его установить, выполните в режиме root:
# yum install lorax 
Помимо lorax надо будет установить несколько других пакетов. Они не помогают решить зависимости lorax и не устанавливаются автоматически, поэтому их надо будет установить отдельно:
  • virt-install — предоставляет инструменты для создания виртуальных машин. Используется, если не задан параметр --no-virt.
  • libvirt, qemu-kvm, virsh и другие средства виртуализации — необходимы для нормальной работы virt-install. Более подробно о виртуализации рассказывается в руководстве по виртуализации Red Hat Enterprise Linux 7.
  • anaconda — если задан параметр --no-virt, на первом этапе создания установочного образа используется программа установки Red Hat Enterprise Linux.
Обсуждение других приложений выходит за рамки этого руководства. Если при запуске livemedia-creator оказалось, что необходимый пакет не установлен, будет показано сообщение со списком обязательных пакетов.

24.2.3. Образцы файла кикстарта

Установочный образ создается с учетом параметров в файле кикстарта. При установке пакета lorax в каталог /usr/share/doc/lorax-версия/ будут установлены шаблоны, на основе которых можно создать собственный файл.
Образцы:
  • rhel7-minimal.ks — минимальная конфигурация без графического окружения, включающая группу @core, ядро, GRUB2 и другие необходимые компоненты. Будет создан только пользователь root.
  • rhel7-livemedia.ks — комплект с графическим окружением. Будут созданы пользователи root и liveuser.
На основе этих шаблонов можно создать свой файл кикстарта. При этом как минимум надо будет изменить расположение источника установки — откройте файл в текстовом редакторе (например, vim) и откорректируйте строку url.

Важно

Не изменяйте исходный шаблон. Скопируйте его в другой каталог и используйте копию как рабочий вариант.

Примечание

Команда url должна содержать ссылки на официальные репозитории Red Hat. Работоспособность файла при добавлении других репозиториев не гарантирована.

24.2.4. Примеры создания образов

В этой секции рассматриваются наиболее распространенные примеры использования livemedia-creator. Полный список параметров можно просмотреть на справочной странице livemedia-creator(1) или выполнив livemedia-creator(1).

24.2.4.1. Создание Live-образа с помощью virt-install

Livemedia-creator использует virt-install для создания временной виртуальной машины, где будет запущен процесс создания образа. Для создания Live-образа потребуется файл кикстарта и загрузочный ISO-образ с программой Anaconda (см. Раздел 2.2, «Создание установочного USB-носителя»).
Для создания Live-образа с помощью virt-install надо выполнить команду:
# livemedia-creator --make-iso --iso=/path/to/boot.iso --ks=/path/to/valid/kickstart.ks 
Укажите действительные пути к минимальному загрузочному образу и файлу кикстарта.
Дополнительные параметры:
  • --vnc vnc — передается параметру virt-install --graphics и позволяет наблюдать за процессом установки, подключившись из клиента VNC, например TigerVNC (см. Глава 22, Установка с помощью VNC).
  • --ram x — размер ОЗУ виртуальной машины в мегабайтах.
  • --vcpus x — число процессоров виртуальной машины.

24.2.4.2. Создание Live-образа с помощью Anaconda

Anaconda предлагает собственные инструменты для создания Live-образов. Процесс состоит из двух этапов: сначала создается временный образ диска с установкой дистрибутива Red Hat Enterprise Linux, затем на его основе создается загрузочный ISO-образ.

Предупреждение

Такой способ создания образа предполагает определенный риск в силу использования не специально созданной виртуальной машины, а программы установки физической системы. Поведение этого процесса может оказаться непредсказуемым, поэтому во избежание потери данных в рабочей системе для этой цели следует создать виртуальную машину и там создать образ, выполнив livemedia-creator с параметром --no-virt.

Важно

Прежде чем приступить, убедитесь, что SELinux работает в режиме предупреждений или отключен (см. руководство по SELinux в Red Hat Enterprise Linux 7).
Для создания установочного образа с помощью Anaconda используется параметр --no-virt:
# livemedia-creator --make-iso --ks=/path/to/valid/kickstart.ks --no-virt 

24.2.4.3. Создание файла образа

С помощью livemedia-creator можно завершить первый этап, создав файл образа. Программа остановится после создания файла на временном диске или в локальной файловой системе. Полученный образ можно смонтировать, чтобы убедиться в отсутствии ошибок.
Существует несколько способов остановки процесса после первого этапа. Например, это можно сделать с помощью аргумента --image-only:
# livemedia-creator --make-iso --ks=/path/to/valid/kickstart.ks --iso=/path/to/boot.iso --image-only 
Или использовать --make-disk вместо --make-iso:
# livemedia-creator --make-disk --ks=/path/to/valid/kickstart.ks --iso=/path/to/boot.iso 
Наконец, --make-fsimage позволит создать локальный образ:
# livemedia-creator --make-fsimage --ks=/path/to/valid/kickstart.ks --iso=/path/to/boot.iso 

Примечание

Все перечисленные выше команды принимают аргумент --no-virt
По умолчанию образ будет сохранен в /var/tmp/. Чтобы изменить путь, добавьте параметр --tmp /путь/.

24.2.4.4. Создание загрузочного ISO

С помощью livemedia-creator можно создать загрузочный ISO, взяв за основу подготовленный образ (см. Раздел 24.2.4.3, «Создание файла образа»).
Для создания ISO-файла из дискового образа служит параметр --disk-image:
# livemedia-creator --make-iso --disk-image=/path/to/disk/image.img 
Для создания ISO-файла из образа в файловой системе служит параметр --fs-image:
# livemedia-creator --make-iso --fs-image=/path/to/filesystem/image.img 

24.2.4.5. Создание образа виртуальной машины

Livemedia-creator --make-appliance создаст образ виртуальной машины (образ диска с готовой схемой разделов) из шаблона и XML-файл с описанием.
# livemedia-creator --make-appliance --ks=/path/to/valid/kickstart.ks --iso=/path/to/boot.iso 
Созданные файлы по умолчанию будут помещены в /var/tmp/. Этот путь можно переопределить при помощи параметра --resultdir.
Дополнительные параметры:
  • --app-name имя — имя образа. В XML-файле имя будет отмечено тегом <name>. По умолчанию равно None.
  • --app-template /путь/к/template.tmpl — путь к шаблону. По умолчанию используется /usr/share/lorax/appliance/libvirt.tmpl.
  • --app-file /путь/к/file.xml — путь к файлу XML. По умолчанию используется appliance.xml.

24.2.4.6. Создание образа машины Amazon

Чтобы создать AMI (Amazon Machine Image) для Amazon EC2 (Elastic Compute Cloud), используйте параметр --make-ami.
# livemedia-creator --make-ami --ks=/path/to/valid/kickstart.ks --iso=/path/to/boot.iso 
По умолчанию созданный файл ami-root.img будет сохранен в /var/tmp/. Путь можно переопределить при помощи параметра --resultdir.

24.2.4.7. Дополнительные параметры

Далее перечислены дополнительные параметры, которые могут использоваться в разобранных выше примерах.
  • --keep-image — отменяет удаление временного образа, созданного на первом этапе установки. Файл образа со случайным именем наподобие diskgU42Cq.img по умолчанию хранится в каталоге /var/tmp/.
  • --image-only — останавливает процесс после первого этапа, в ходе которого будет создан временный образ. Это позволит значительно сэкономить время при тестировании изменений в файле кикстарта, полностью отменив продолжительный второй этап.
  • --image-name имя — имя временного образа. По умолчанию будет выбрано случайным образом (например, disk1Fac8G.img).
  • --tmp /путь/ — путь к временному каталогу. По умолчанию образ будет сохранен в /var/tmp/. Необходимо указать путь к существующему каталогу.
  • --resultdir /путь/ — путь к новому каталогу, где будет располагаться полученный ISO-образ. По умолчанию файл будет сохранен в /var/tmp/. Этот параметр не оказывает влияния на расположение временного образа — для этой цели служит --tmp.
  • --logfile /путь/ — расположение журнала.

24.2.5. Диагностика livemedia-creator

В этой секции обсуждаются проблемы, с которыми может столкнуться пользователь в ходе работы livemedia-creator. Если решение здесь не приведено, проверьте журналы, которые создаются в том же каталоге, откуда была запущена программа, или в каталоге, заданном с помощью --logfile. Одни журналы, такие как livemedia.log и program.log, создаются каждый раз, другие определяются параметрами команды — например, при добавлении --no-virt файл virt-install.log не создается, а журналы будут располагаться в каталоге anaconda/.
Параметр --image-only может помочь при поиске ошибок, остановив процесс после первого этапа, в ходе которого будет создан временный образ. Полученный образ можно смонтировать и проверить его содержимое. При запуске команды с параметром --keep-image будут завершены оба этапа, но временный образ не будет удаляться.
--vnc позволяет подключиться к виртуальной машине и наблюдать за процессом установки (см. Глава 22, Установка с помощью VNC).

24.2.5.1. Установка виртуальной машины зависла

Если процесс установки виртуальной машины завис по какой-то причине, livemedia-creator не сможет продолжить работу. В этой ситуации можно принудительно прервать работу программы или остановить виртуальную машину. После остановки гостевой системы livemedia-creator удалит временные файлы и продолжит выполнение.
Ниже рассматривается порядок остановки виртуальной машины.

Процедура 24.1. Остановка временной виртуальной машины

  1. Выполните команду virsh для просмотра списка виртуальных машин.
    # virsh list --all Id Name State ---------------------------------------------------- 93 LiveOS-2a198971-ba97-454e-a056-799f453e1bd7 running - RHEL7 shut off 
    Имя временной виртуальной машины начинается с LiveOS.
  2. Чтобы остановить машину, выполните virsh destroy имя.
    # virsh destroy LiveOS-2a198971-ba97-454e-a056-799f453e1bd7 Domain LiveOS-2a198971-ba97-454e-a056-799f453e1bd7 destroyed 

24.2.5.2. Установка виртуальной машины прервалась

Если процесс установки прервался на первой стадии из-за сбоя оборудования, отключения питания или по запросу пользователя, прежде чем начать его заново, надо удалить временный образ и виртуальную машину.
Последовательность действий можно корректировать в зависимости от ситуации. Например, при восстановлении после системного сбоя виртуальную машину не требуется останавливать — надо лишь удалить ее определение, а шаги 4-5 необходимы только для очистки временных файлов livemedia-creator.

Процедура 24.2. Удаление временных образов и виртуальных машин

  1. Выполните команду virsh для просмотра списка виртуальных машин.
    # virsh list --all Id Name State ---------------------------------------------------- 93 LiveOS-2a198971-ba97-454e-a056-799f453e1bd7 running - RHEL7 shut off 
    Имя временной виртуальной машины начинается с LiveOS.
  2. Чтобы остановить машину, выполните virsh destroy имя.
    # virsh destroy LiveOS-2a198971-ba97-454e-a056-799f453e1bd7 Domain LiveOS-2a198971-ba97-454e-a056-799f453e1bd7 destroyed 
  3. virsh undefine имя удаляет временную виртуальную машину.
    # virsh undefine LiveOS-2a198971-ba97-454e-a056-799f453e1bd7 Domain LiveOS-2a198971-ba97-454e-a056-799f453e1bd7 has been undefined 
  4. Найдите точное место монтирования временной файловой системы. Обычно она подключается в /var/tmp/lorax.imgutils (с шестью случайными знаками в конце строки).
    # findmnt -T /var/tmp/lorax.imgutils* TARGET SOURCE FSTYPE OPTIONS /var/tmp/lorax.imgutils.bg6iPJ /dev/loop1 iso9660 ro,relatime 
    Отключите файловую систему:
     # umount /var/tmp/lorax.imgutils.bg6iPJ 
  5. Определите точное имя временного образа в /var/tmp. Имя файла будет показано в начале процесса установки, по умолчанию генерируется случайным образом, но может быть изменено с помощью --image-name.
     2013-10-30 09:53:03,161: disk_size = 5GB 2013-10-30 09:53:03,161: disk_img = /var/tmp/diskQBkzRz.img 2013-10-30 09:53:03,161: install_log = /home/pbokoc/lorax/virt-install.log mount: /dev/loop1 is write-protected, mounting read-only 
    В этом примере временный образ расположен в /var/tmp/diskQBkzRz.img.
    Если исходные сообщения не удалось найти, выведите список файлов в /var/tmp, имена которых содержат слово disk:
    # ls /var/tmp/ | grep disk diskQBkzRz.img 
    Удалите найденный образ:
    # rm -f /var/tmp/diskQBkzRz.img 
После этого можно заново запустить установку с помощью virt-install.

24.2.5.3. Ошибка установки при наличии --no-virt

При сбое процесса установки, запущенного с параметром --no-virt, надо выполнить сценарий anaconda-cleanup (устанавливается в составе пакета anaconda и расположен в /usr/bin/).
Выполните сценарий в режиме root:
# anaconda-cleanup