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

Указание preseed для установщика debian внутри initrd в качестве аргумента ядра

Я настраиваю установщик, используя как PXE, так и USB, и он работает хорошо, однако мне нужно добавить несколько разных параметров в меню загрузки, чтобы использовать разные файлы preseed. Это для разных ситуаций, например, нужно ли настраивать программный рейд, сколько дисков и т. Д.

Итак, в идеале я хотел бы создать один образ initrd, содержащий несколько файлов preseed, и указать, какой из них использовать с аргументом ядра, как подробно описано в руководство. Однако это не работает. Кажется, что как бы я ни указывал preseed / file =, установщик будет искать только /preseed.cfg.

Вот пример моего файла pxelinux.cfg / default (очень похожая конфигурация существует и для syslinux):

DISPLAY boot.txt
DEFAULT install_raid_1disk

LABEL install_raid_1disk
        kernel installer/2b/linux
        append vga=normal initrd=/installer/2b/initrd.gz preseed/file=/preseed-net-raid-1disk.cfg --

LABEL install_raid_2disks
        kernel installer/2b/linux
        append vga=normal initrd=/installer/2b/initrd.gz preseed/file=/preseed-net-raid-2disks.cfg --

LABEL install_noraid
        kernel installer/2b/linux
        append vga=normal initrd=/installer/2b/initrd.gz preseed/file=/preseed-net-noraid.cfg --


PROMPT 1
TIMEOUT 20

Предложение Zoredache очень интересно. Я бы сначала попробовал. Если это не сработает, я бы предложил создать по одному initrd для каждого пресида. Поместите файл preseed в корень initrd.

  1. извлечь файлы из initrd:

    $ mkdir / tmp / 1; cd / tmp / 1; кот /boot/initrd.gz | gzip -d | cpio -i

  2. скопируйте файл preseed в корень initrd:

    $ cp preseed.cfg.

  3. Повторно создайте initrd:

    $ find | cpio -o --format = newc | gzip -9c> ../initrd-custom1.gz

Повторите шаги для каждого файла предварительной загрузки ...

Вы можете использовать несколько файлов initrd, если все они являются файлами cpio. Это работает (в зависимости от загрузчика): у вас есть стандартный файл initrd установщика, который представляет собой cpio, и второй initrd, состоящий только из сжатого файла, хранящегося в initrd в стиле cpio. Загрузите оба файла initrd во время загрузки. это позволяет вам независимо обновлять стандартные initrd и preseed initrd и иметь несколько версий каждой, выбираемых из меню загрузчика.