Red Hat 7.4: Как вставить файл кикстарта на USB-носитель для системы только с UEFI?

Это должно сработать:

grep -rlZ "wrongtext" ~/Library/Calendars | xargs -0 sed -i '' 's/wrongtext/righttext/g'

Я добавил параметр -Z в grep , чтобы добавить ноль байт вместо новой строки после каждого имени файла. Таким образом, команда работает также со странными именами файлов. xargs затем считывает ввод, разделенный нулевым байтом -0 , и вызывает команду sed .

3
05.06.2018, 18:34
2 ответа

Сейчас существует более простой подход, который, вероятно, будет хорошо работать как с RHEL/CentOS, так и с Fedora ISO --, поскольку он является частью проекта lorax, который RHEL и Fedora используют для создания своих ISO-образов в первую очередь, мкксисо . Я тестировал его только на Fedora 32.

При тестировании я обнаружил ошибку; если исходный ISO загружается как на UEFI, так и на Mac, новый ISO загружается только на Mac и в устаревших системах BIOS. Исправлен в этот PR , но он еще не выпущен, но mkksiso— это простой скрипт Python, который вы можете просто загрузить отдельно, если остальная часть loraxустановлена.

Внедрение кикстарта теперь так же просто, как:

sudo dnf install lorax
wget -cN https://raw.githubusercontent.com/weldr/lorax/master/src/sbin/mkksiso
chmod +x mkksiso
sudo./mkksiso -V MyNewVolumeID path/to/kickstart path/to/orig.iso path/to/

см. напр.https://github.com/michel-slm/luks-kickstarts/blob/master/rebuild.sh

1
16.07.2020, 19:24

Основываясь на ответах Томаса и Кевина , мне удалось получить рабочую процедуру, основанную на xorriso, которую можно получить в EPEL. Мои цели были похожи на цели Кевина :

.
  • Используйте стандартный установочный носитель RHEL 7
  • Имплантировать сценарии кикстарта и настройки в полученный образ
  • Автоматический выбор кикстарта для установки
  • Создать образ, совместимый с загрузкой UEFI
  • Записать процедуру в сценарий

Успешно протестировано с RHEL 7.5 и 7.6.

Пошаговая процедура

  1. Установите xorrisoиз EPEL.
  2. Загрузить установочный DVD-диск RHEL 7 в $ISO_SRC.
  3. Подготовьте кикстарт(ks.cfg)и сценарии в $SCRIPTS.
  4. Извлечь файлы, которые необходимо настроить, из ISO в$FILES:

    • isolinux/isolinux.cfg
    • EFI/BOOT/grub.cfg
    • images/efiboot.img
  5. Измените файлы конфигурации загрузки *.cfgв $FILES:

    .

    Примечание :Я не изменяю метку диска (или идентификатор тома )намеренно. Он чувствителен к пробелам (потенциально любым специальным символам ), и мне было проще использовать его повторно вместо замены.

    • добавить параметр кикстарта в команду загрузки

      '(.*)(hd:LABEL=\S+)(.*)''\1\2 inst.ks=\2:/$SCRIPTS/ks.cfg\3'

    • установить меню загрузки по умолчанию для устаревшей загрузки вisolinux.cfg

      '^\s*menu default\s*\n'''

    • установить меню загрузки по умолчанию для загрузки UEFI вgrub.cfg

      'set default=.*''set default="0"'

  6. Изменить загрузочный образ UEFI images/efiboot.imgв$FILES:

    • смонтировать во временный каталог
    • скопировать в него загрузочное меню UEFI $FILES/EFI/BOOT/grub.cfg
    • размонтировать
  7. Создайте собственное изображение:

    xorriso \
      -indev "$ISO_SRC" \
      -map "$SCRIPTS" /"$SCRIPTS" \
      -map "$FILES" / \
      -boot_image any replay \
      -outdev "$ISO_DST"
    

    Команда копирует содержимое исходного ISO-образа $ISO_SRC, объединяет содержимое локальных каталогов и воспроизводит все параметры загрузки из исходного образа в целевой образ $ISO_DST. Дальнейшие действия не требуются.

Примечание к методу geniso

Мне было трудно следовать genisoметоду, описанному Кевином . Мне удалось создать выходной образ ISO, однако genisoжаловался на невозможность изменить образ isolinux.bin, поэтому мне пришлось извлечь и его. В процедуре об этом не сказано.

Я столкнулся со стеной при включении загрузки UEFI с помощью isohybrid. Он вернул ошибку, я не нашел обходного пути для:

$ isohybrid --uefi rhel-custom.iso
isohybrid: rhel-custom.iso: boot loader does not have an isolinux.bin hybrid 
signature. Note that isolinux-debug.bin does not support hybrid booting

Независимая роль

Я создал роль Ansible, которая выполняет задачу:build _boot _iso .

2
27.01.2020, 21:13

Теги

Похожие вопросы