Моя цель - создать настроенный iso-образ fedora 20 netinst iso. Я делал это с научным Linux много раз, чтобы добавить к изображению собственный файл кикстарта. Но швы Fedora должны работать по-другому, чтобы поддержать EFI. Какие команды необходимы для создания загрузочного образа fedora из измененного содержимого официального iso-файла?
1 ответ
Вы взглянули на документацию Fedora: Как создать ISO для установки Fedora для тестирования
На этой странице показано, как создать ISO-образ Fedora, который вы можете использовать для тестирования. Примеры ссылаются на хранилище Fedora Rawhide, но те же инструкции применимы для любого выпуска Fedora. Учебник требует, чтобы вы открыли корневую оболочку. Чтобы получить доступ к корневой оболочке, откройте терминал и выполните команду su - и введите пароль root.
Настроить
Чтобы создать ISO-образы Fedora, вы должны использовать выпуск Fedora, соответствующий выпуску желаемых ISO-образов. Например, для создания образов Fedora Rawhide вам необходимо запустить Fedora Rawhide. Примеры в этом документе используют Package-x-generic-16.pngmock для имитации целевой среды и создания образов ISO. Если у вас уже есть доступная система с целевым выпуском, использование макета не требуется.
Сначала установите необходимые пакеты
yum install mock
Настройте макет конфигурации, чтобы разрешить монтирование, необходимое для поддержки создания композитного изображения. Добавьте следующие строки в соответствующую макетную конфигурацию. Например, для Fedora Rawhide обновите /etc/mock/fedora-rawhide-x86_64.cfg, чтобы включить следующее:
config_opts['plugin_conf']['bind_mount_enable'] = True
config_opts['plugin_conf']['bind_mount_opts']['dirs'].append(('/dev','/dev/'))
config_opts['plugin_conf']['bind_mount_opts']['dirs'].append(('/dev/pts','/dev/pts/'))
config_opts['plugin_conf']['bind_mount_opts']['dirs'].append(('/dev/shm','/dev/shm/'))
Initialize the mock chroot
mock -r fedora-rawhide-$(uname -i) --init
Note.png
За кулисами... Мок делает большую работу за кулисами. Если вы хотите увидеть, какие команды он выполняет в chroot, добавьте опцию --verbose.
Подготовьте макет chroot для запуска pungi, установив пакеты в chroot
mock -r fedora-rawhide-$(uname -i) --install spin-kickstarts pungi ${EDITOR:-vi}
Создать локальное зеркало (необязательно)
Этот раздел не является обязательным. Вы можете использовать ближайшее официальное зеркало Fedora по широкополосному соединению. Тем не менее, вам может пригодиться локальное зеркальное отображение Rawhide, если вы регулярно участвуете в тестировании. Обратите внимание, что пакет Package-x-generic-16.pngmirrormanager может быть полезен в некоторых ситуациях. Обратитесь к подробной странице MirrorManager для получения дополнительной информации.
Если у вас нет Rawhide, доступного по быстрой локальной ссылке, вы можете отразить его локально с помощью rsync. Найти ближайшее зеркало на http://mirrors.fedoraproject.org
mkdir -p /var/www/fedora/linux/development/x86_64/os
cd /var/www/fedora/linux/development/x86_64/os
rsync -Pavy --delete-after <MIRROR_NEAR_YOU>::/pub/fedora/linux/development/rawhide/$(uname -i)/os/ .
В макете chroot отредактируйте файл конфигурации кикстарта, используемый pungi.
mock -r fedora-rawhide-$(uname -i) --shell ${EDITOR:-vi} /usr/share/spin-kickstarts/fedora-install-fedora.ks
Удалите (или закомментируйте) существующую строку repo --name = fedora и добавьте новую запись для локального зеркала. Используя приведенный выше пример, вы получите ...
repo --name=fedora --baseurl=file:///var/www/fedora/linux/development/$basearch/os
Когда закончите, сохраните ваши изменения и выйдите из chroot, нажав Ctrl-D или напечатав выход
Сборка boot.iso
В этом разделе предполагается, что вы установили пакет Package-x-generic-16.pngmock и подготовили макет chroot, как предложено в #Setup. Если вы еще не завершили эти шаги, сделайте это сейчас. В этом разделе приведены инструкции по созданию только образов PXEboot и boot.iso. Чтобы создать устанавливаемый образ -DVD.iso, см. #Build_a_DVD_ISO.
Активировать оболочку внутри макета chroot
mock -r fedora-rawhide-$(uname -i) --shell
Затем создайте DVD (это может занять некоторое время)
pungi --nosource --nodebuginfo -G -C -B \
--flavor Fedora --name Fedora --ver rawhide \
-c /usr/share/spin-kickstarts/fedora-install-fedora.ks
Если предыдущая команда была выполнена без ошибок, теперь у вас есть образы PXEboot и файл boot.iso, доступный в вашем chroot. Выйдите из фиктивной оболочки и скопируйте ISO-образ из chroot.
mock -r fedora-rawhide-$(uname -i) --copyout /rawhide/Fedora/$(uname -i)/os/images/boot.iso /tmp/
Сборка DVD.iso
В этом разделе предполагается, что вы установили пакет Package-x-generic-16.pngmock и подготовили макет chroot, как предложено в #Setup. Если вы еще не завершили эти шаги, сделайте это сейчас.
Activate a shell inside the mock chroot
mock -r fedora-rawhide-$(uname -i) --shell
Next, create a DVD (this may take a while)
pungi --nosource --nodebuginfo \
--flavor Fedora --name Fedora --ver rawhide \
-c /usr/share/spin-kickstarts/fedora-install-fedora.ks
Если вы уже выполнили шаги, описанные в # Build_a_boot.iso, вы можете сэкономить время, указав pungi только для создания образа -DVD.iso. При запуске команды pungi выше добавьте параметр -I, чтобы создавать только файлы ISO и пропускать ранее выполненные шаги.
Если предыдущая команда выполнена без ошибок, теперь у вас есть образ DVD ISO в вашем chroot. Прежде чем продолжить, проверьте ISO образы с помощью команды sha256sum
cd /rawhide/Fedora/$(uname -i)/iso
sha256sum -c Fedora-rawhide-$(uname -i)-CHECKSUM
Выйдите из фиктивной оболочки, скопируйте ISO-образ из chroot и получайте удовольствие ...
mock -r fedora-rawhide-$(uname -i) --copyout /rawhide/Fedora/$(uname -i)/iso/Fedora-rawhide-$(uname -i)-DVD.iso /tmp/