Как я могу передать аргументы ядра через PXE в ISO-образ установщика Ubuntu?

Я нахожусь в сложной ситуации, в которой мне нужно выполнить удаленную установку устройства QuantaStor (на основе Ubuntu- его шипение) на оборудование с ограниченной функциональностью внеполосного доступа.

Целевой системой является сервер HP ProLiant DL180 G6, который имеет полностью лицензированный удаленный KVM Lights-Out LO100i. Это большой шаг вниз по сравнению с процессорами управления ILO3 или ILO4. Проблема с этим оборудованием заключается в том, что функции виртуальных носителей LO100i не надежны. Поскольку выпуски Java прогрессировали, эта МОТ стала менее полезной. Сейчас я не могу загрузить систему через удаленный носитель, хотя в прошлом эта функция работала хорошо.

Поэтому следующим моим шагом была попытка PXE-загрузки этого сервера с использованием ISO-образа QuantaStor. Как ни странно, существует ряд противоречивых мнений о том, как PXE может загружать ISO-образ напрямую, без цепочки загрузчиков и т. Д. После некоторых экспериментов я обнаружил, что могу загрузить ISO-образ, используя memdisk через сервер PXE. Я контролирую DNS и DHCP в этой среде, поэтому я пошел стандартным путем изменения /etc/dhcpd.conf файл конфигурации для отражения:

# Begin temporary PXE boot
allow booting;
allow bootp;
option option-128 code 128 = string;
option option-129 code 129 = text;
next-server 172.30.27.5;
filename "/pxelinux.0";
# End temporary PXE boot

Для моей конфигурации PXE я установил /tftpboot/pxelinux.cfg/default чтобы:

default menu.c32
prompt 0
timeout 300
ONTIMEOUT local

MENU TITLE PXE Menu

LABEL QuantaStor
        MENU LABEL QuantaStor
        KERNEL memdisk
        APPEND iso initrd=images/osn_quantastor_v3.8.2.5441.iso raw

Вместе эти функции позволили мне заставить систему начать загрузку ISO. К сожалению, консоль удаленного KVM выдает следующий искаженный видеовыход:

Экран установки устройства должен выглядеть следующим образом:

После нескольких перезагрузок и после некоторых фундаментальных исследований я обнаружил, что удаленный KVM LO100 разделяет этот признак кадрового буфера с некоторыми платами Supermicro IPMI. Обходной путь должен пройти vga16fb.modeset=0 к загрузочным аргументам. Это уникально для Ubuntu (вздох).

Как я могу получить это утверждение в строке аргумента PXE-загруженного ISO?

Где я должен добавить заявление?

Попытки сделать это в строке "APPEND" /tftpboot/pxelinux.cfg/default не похоже, чтобы помочь Подсказки Ubuntu предлагают добавить строку, нажав F6 на загрузочном экране ISO. К этому моменту мой удаленный KVM искажен, и я не могу добавить его вручную.

Есть идеи?


Обновить:

Я извлек ISO и изменил файл isolinux.cfg, чтобы изменить поддержку буфера фрейма установщика в строке APPEND ядра. Система загружается, и установщик работает... кроме того, что теперь я получаю сообщение об ошибке на CDROM. Я предполагаю, что мой метод PXE неверен.

Как правильно использовать ISO поверх PXE в этом контексте?

введите описание здесь

2 ответа

Решение

Изменение append с заданными параметрами определенно не поможет PXELINUX в ​​этой настройке, так как загрузочный диск имеет собственный ISOLINUX, обрабатывающий загрузку ядра.

Два способа это исправить.

Более простой вариант: извлечь ISO, изменить isolinux/isolinux.cfg файла append в строке с необходимыми параметрами загрузки, перепакуйте ISO. Имейте цепь PXELINUX для модифицированного ISO.

Более сложный (но, возможно, лучше, так как он удаляет цепочку) вариант: вместо использования memdisk для загрузки в ISO, загрузите напрямую так же, как это делал бы ISOLINUX ISO.

Изменить: более четкие шаги для загрузки ОС в ISO:

  • Распакуйте ISO в /tftpboot/quantastore
  • Скопируйте файл preseed/quantastor.seed от извлеченного ISO до веб-корня службы HTTP, работающей на вашем PXE-сервере, чтобы она была доступна на http://172.30.27.5/quantastor.seed
  • Измени свой pxelinux.cfg/default файл для загрузки непосредственно в извлеченное содержимое ISO. Удалить текущий LABEL QuantaStor и заменить на:

    LABEL QuantaStor
      menu label QuantaStor
      kernel quantastor/install/vmlinuz
      append preseed/url=http://172.30.27.5/quantastor.seed locale=en_US.UTF-8 keyboard-configuration/layoutcode=us initrd=quantastor/install/initrd.gz ramdisk_size=16384 nodmraid acpi=off root=/dev/ram vga16fb.modeset=0 rw quiet
    

Это должно получить успешную установку по большей части, но команды, которые QuantaStor запускает в конце установки, не будут выполнены, так как они ищут непосредственно /cdrom, От quantastor.seed файл:

 d-i preseed/late_command string mkdir -p /target/lib/plymouth/themes/quantastor; \
 chroot /target echo "creating package dirs, setting up splash screens" >> /var/log/qs_install.log; \
 mkdir /target/qs-pkgs; \
 mkdir -p /target/qs-pkgs/drivers; \
 mkdir -p /target/opt/osnexus/quantastor/raid-tools; \
 cp /cdrom/finisher/raid-tools/* /target/opt/osnexus/quantastor/raid-tools; \
 cp /cdrom/finisher/deb/*.deb /target/qs-pkgs; \
 cp /cdrom/finisher/qs_preseed.sh /target/qs-pkgs; \
 cp /cdrom/finisher/drivers/* /target/qs-pkgs/drivers; \
 cp /cdrom/finisher/splash/* /target/lib/plymouth/themes/quantastor; \
 cp /cdrom/finisher/osnexus.gpg /target/qs-pkgs; \
 cp /cdrom/finisher/osnexus.list /target/etc/apt/sources.list.d/osnexus.list; \
 cp /cdrom/finisher/rc.local /target/etc/rc.local; \
 cp /cdrom/finisher/qs_runonce.sh /target/etc/qs_runonce.sh; \
 chroot /target /qs-pkgs/qs_preseed.sh

Вероятно, просто запустите этот материал вручную после первого завершения установки (удалив /target вещи) - если он работает не так, как мы, мы можем адаптировать эти команды, чтобы разместить их вещи на месте, не завися от того, какой компакт-диск находится в приводе.

Типа это "слепой"?

Нажмите Enter, как только появится (искаженный) выбор языка, так как он быстро истекает.

Затем нажмите F6, Esc, введите vga16fb.modeset=0 и нажмите Enter.

Возможно, вам не хватало необходимости нажимать Esc сразу после F6.

Другие вопросы по тегам