Как добавить драйвер DUD в медиапротокол CentOS/RHEL 7 (без сети)?

Вопрос или проблема

Я работаю над созданием оффлайн-установщика для чего-то, что я сейчас собираю с помощью PXE и RHEL 7. Затронутые серверы (Dell 14G) нуждаются в дополнительном драйвере для контроллера RAID. В версии PXE я могу добавить dd=http://somehost/blah.iso к параметрам ядра, чтобы загрузить дополнительные драйверы во время загрузки. Как сделать то же самое с локальными носителями?

У меня есть скрипт, который позволяет мне пересоздавать ISO с дополнительным содержимым (отсюда: https://github.com/RedHatGov/ssg-el7-kickstart)

Он работает как есть. Я планирую просто вырезать ‘payload’ с наложением безопасности и вставить мой существующий скрипт kickstart из PXE-установки.

Однако, если я просто положу ISO-образ DUD RAID на диск и добавлю dd=cdrom:/megaraid_sas-07.700.52.00_el7.X-2.x86_64.iso к параметрам загрузки, установщик зависает и говорит “Kickstart загружен. Пожалуйста, вставьте установочный носитель заново”. На самом деле это сообщение появляется на мгновение и во время обычной установки, так что я не уверен, что оно действительно имеет значение.

Я не могу найти много информации о том, как использовать dd= (или inst.dd=) с локальным файлом вместо URL… это возможно? В чем секрет? Если я просто указываю inst.dd без параметров (чтобы получить интерактивный режим), а затем выбираю мой cdrom /dev/sr0, то он не обнаруживает ISO драйвера (я думаю, он ожидает, что весь диск CD будет содержимым этого ISO вместо диска установщика)

Мне кажется, что самым простым методом будет скопировать содержимое диска с драйверами на USB-накопитель.

Скопируйте содержимое образа ISO в корневую директорию USB-накопителя, измените метку тома USB-накопителя на OEMDRV и загрузите сервер с обеими вставленными установочными носителями и этим USB-накопителем. Установщик RHEL автоматически найдет драйверы на диске и загрузит соответствующий драйвер.

Документация RHEL объясняет это чуть более подробно и дает несколько других альтернатив.

Локальный образ ISO отличается от kickstart pxe, поэтому вы должны изменить содержимое isolinux.cfg так:

label linux
menu label ^Установка ctyunos 2.0.1-220311
kernel vmlinuz
append initrd=initrd.img ks=cdrom:/isolinux/ks.cfg quiet
ks.cfg вы можете положить в папку isolinux

Ответ или решение

Как добавить драйвер DUD в установочный образ CentOS/RHEL 7 (без подключения к сети)

Создание оффлайн инсталлятора для CentOS/RHEL 7 может быть необходимым в ситуациях, когда сервера без доступа к интернету требуют загрузки дополнительных драйверов, например, для RAID-контроллеров. В этой статье мы рассмотрим метод добавления DUD-драйвера (Driver Update Disk) в локальный установочный образ, а также другие альтернативные решения.

Подготовка к работе с инсталляционным образом

Первоначально необходимо убедиться, что у вас есть доступ к образу ISO, который вы хотите модифицировать. Если у вас уже есть образ, убедитесь, что все необходимые пакеты и утилиты установлены. Для работы с ISO-файлами часто используются утилиты, такие как isoinfo, genisoimage или mkisofs, которые могут помочь в процессе модификации.

Извлечение содержимого ISO

  1. Смонтируйте ISO-образ:

    mkdir /mnt/iso
    mount -o loop /path/to/your_image.iso /mnt/iso
  2. Скопируйте содержимое в новую папку:

    mkdir /path/to/new_iso
    cp -r /mnt/iso/* /path/to/new_iso
  3. Смонтируйте DUD-образ:

    mkdir /mnt/dud
    mount -o loop /path/to/dud_image.iso /mnt/dud
    cp -r /mnt/dud/* /path/to/new_iso/driver_update/

Изменение настроек загрузки

Следующий шаг – обеспечить загрузку драйвера в инсталлятор. Для этого нужно отредактировать файл конфигурации isolinux.cfg, который находится в папке isolinux вашего нового ISO-образа. Например, вы можете добавить параметр inst.dd=cdrom:/driver_update, который указывает на папку с драйверами:

label linux
    menu label ^Install CentOS/RHEL 7
    kernel vmlinuz
    append initrd=initrd.img inst.dd=cdrom:/driver_update quiet

Создание нового ISO-образа

После модификации содержимого и конфигурации создайте новый ISO-образ с использованием genisoimage или mkisofs:

genisoimage -o /path/to/new_installer.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -R -J -v -T /path/to/new_iso

Альтернативное решение: Использование USB-накопителя

Если вы укажете inst.dd=cdrom:/ и всё равно получите сообщение о том, что установочный носитель отсутствует, может оказаться проще использовать USB-накопитель. Для этого:

  1. Скопируйте содержимое DUD-образа на USB-накопитель:

    • Отформатируйте USB-накопитель и скопируйте содержимое DUD-образа в корневую директорию накопителя.
  2. Измените метку накопителя:

    dosfslabel /dev/sdX1 OEMDRV
  3. Загрузите сервер с установленным установочным носителем и подключенным USB-накопителем:
    Инсталлятор автоматически определит драйверы на USB и загрузит их.

Заключение

Эти шаги позволяют добавить драйвер DUD в локальный инсталлятор CentOS/RHEL 7 без подключения к сети. Использование USB-накопителя также является удобным и эффективным способом решения проблемы загрузки драйверов. Выбор метода зависит от инфраструктуры и требований вашей организации. Будьте внимательны к деталям в процессе редактирования файлов конфигурации и создания ISO, чтобы обеспечить успешную установку системы с требуемыми драйверами.

Оцените материал
Добавить комментарий

Капча загружается...