- Вопрос или проблема
- Ответ или решение
- Как добавить драйвер DUD в установочный образ CentOS/RHEL 7 (без подключения к сети)
- Подготовка к работе с инсталляционным образом
- Извлечение содержимого ISO
- Изменение настроек загрузки
- Создание нового ISO-образа
- Альтернативное решение: Использование USB-накопителя
- Заключение
Вопрос или проблема
Я работаю над созданием оффлайн-установщика для чего-то, что я сейчас собираю с помощью 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
-
Смонтируйте ISO-образ:
mkdir /mnt/iso mount -o loop /path/to/your_image.iso /mnt/iso
-
Скопируйте содержимое в новую папку:
mkdir /path/to/new_iso cp -r /mnt/iso/* /path/to/new_iso
-
Смонтируйте 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-накопитель. Для этого:
-
Скопируйте содержимое DUD-образа на USB-накопитель:
- Отформатируйте USB-накопитель и скопируйте содержимое DUD-образа в корневую директорию накопителя.
-
Измените метку накопителя:
dosfslabel /dev/sdX1 OEMDRV
-
Загрузите сервер с установленным установочным носителем и подключенным USB-накопителем:
Инсталлятор автоматически определит драйверы на USB и загрузит их.
Заключение
Эти шаги позволяют добавить драйвер DUD в локальный инсталлятор CentOS/RHEL 7 без подключения к сети. Использование USB-накопителя также является удобным и эффективным способом решения проблемы загрузки драйверов. Выбор метода зависит от инфраструктуры и требований вашей организации. Будьте внимательны к деталям в процессе редактирования файлов конфигурации и создания ISO, чтобы обеспечить успешную установку системы с требуемыми драйверами.