Назад | Перейти на главную страницу

debian PXE устанавливает содержимое файла preseed.cfg, чтобы обеспечить установку сетевой прошивки

У меня проблема с использованием файла preseed.cfg при установке Debian с помощью PXE.

Моя сетевая карта требует, чтобы пакет firmware-bnx2 учитывался ядром debian.

Во время процесса загрузки PXE производитель позволяет системе настроить свой сетевой интерфейс и обратиться к initrd и ядру, после чего начнется установка. В этом initrd я учел файл press.cfg. Но установка не может быть выполнена автоматически, пока я не установлю этот пакет bnx2.

Я понятия не имею, как установить пакет bnx2 во время этого процесса загрузки. Думаю это возможно через инструкцию

d-i hw-detect/load_firmware boolean true

В документации говорится

# If non-free firmware is needed for the network or other hardware, you can
# configure the installer to always try to load it, without prompting. Or
# change to false to disable asking.

Но я не знаю, где установить этот пакет и как его установить.

Кто-нибудь может мне помочь?

Большое спасибо!

Возможно, вы захотите добавить недостающую прошивку в файловую систему debian-installer. Вот как действовать.

Сначала немного контекста: допустим, у нас есть PXE, настроенный на использование / tftpboot в качестве корня TFTP, и использование следующего «меню» вместо значения по умолчанию в pxelinux.cfg:

    default install label install
        menu label ^Install
        menu default
        kernel debian-installer/amd64/linux
        append vga=788 initrd=debian-installer/amd64/initrd.gz auto=true interface=auto priority=critical url=http://192.0.2.5 preseed/url=http://192.0.2.5/my-custom-preseed.cfg console=ttyS1,115200n8

Итак, оттуда:

  1. найдите свой файл inirtd.gz и разверните его
    cd /tftpboot/debian-installer/amd64/
    cp initrd.gz initrd.gz.orig
    mkdir -p tmp/initrd; cd tmp/initrd
    zcat ../../inirt.gz | cpio -iv 
  1. вы получите необходимую прошивку, чтобы вставить ее внутрь:
    apt-get install --download-only firmware-bnx2 firmware-bnx2x
    cd /tftpboot/debian-installer/amd64/tmp/initrd
    dpkg-deb -x /var/cache/apt/archives/firmware-bnx2_*.deb ../
    dpkg-deb -x /var/cache/apt/archives/firmware-bnx2x_*.deb ../
    cp -a ../lib/firmware lib/firmware
  1. и пересоберите файл initrd
    cd /tftpboot/debian-installer/amd64/tmp/initrd
    find . -print0 | cpio -0 -H newc -ov | gzip -c > ../../initrd.gz

Готово, попробуйте.

Это может быть немного не по проторенному пути, но мне повезло с цепочкой iPXE в качестве фактического загрузчика. Среди других плюсов есть механизм загрузки модуля ядра вместе с вашим initrd. Проверять, выписываться http://ipxe.org/cmd/imgfetch?redirect=1 для примера.