preseed.cfg, установленный в корневом каталоге initrd, не распознается при установке Ubuntu (17.10 amd64 desktop или server)

В течение некоторого времени я использовал процесс для предварительного заполнения initrd в Debian ISO. Я только что попробовал один и тот же процесс для настольных и серверных вариантов Ubuntu 17.10 ISO, и все выглядит нормально, пока я не загружаюсь в него и не вижу абсолютно никаких признаков того, что установщик видит preseed.cfg Я поместил в его initrd. Например, установщик сначала спрашивает, какой язык / локаль, хотя мой preseed.cfg имеет:

d-i debian-installer/locale string en_US.UTF-8
d-i console-setup/ask_detect boolean false
d-i keyboard-configuration/layoutcode string us
d-i debian-installer/keymap select us
d-i keymap select us
d-i keyboard-configuration/xkb-keymap select us

Я просмотрел все опции клавиши F* и не смог найти ни одной опции, сравнимой с "Автоматической установкой" установщика Debian, которая распаковывает initrd и ищет / использует preseed.cfg в корне ответить, потенциал, все вопросы установщика. Документы по предпросеванию в Ubuntu подтверждают, что предпосевная работа в Ubuntu должна работать точно так же, говоря, что:

… Точка, в которой файл предварительной конфигурации загружается и обрабатывается. Для предварительного запуска initrd это происходит в самом начале установки, еще до того, как будет задан первый вопрос.

Есть ли у кого-нибудь полезные советы о том, что может пойти не так, исходя из различий между ISO-образами Ubuntu и ISO-файлами Debian и процессом их предварительного заполнения с помощью initrd?

Эти страницы ( здесь, здесь и здесь) указывают на то, что новые ISO-образы для настольных компьютеров, как сообщалось, не подлежат предварительному посеву, и что ISO-образы серверов должны работать "лучше". Итак, я скачал сервер 17.04 (и 17.10), повторил тест с этим и получил то же поведение.

FTR, процесс встраивания preseed.cfg в initrd, который я использую, было взято из Debian Wiki. В частности, я использую подход "isofiles", который заключается в монтировании ISO (я использую udevil), копировании файлов в локальное хранилище, затем добавлении файла preseed в initrd.

Как я уже сказал, этот процесс отлично работает для ISO-образов Debian, но, похоже, не работает вообще ни для одного из настольных или серверных ISO-образов Ubuntu, которые я пробовал.

Справка Ubuntu подтверждает, что мое предположение верно:

Если вы используете prerded initrd, вам нужно только убедиться, что файл с именем preseed.cfg включен в корневой каталог initrd. Установщик автоматически проверит наличие этого файла и загрузит его.

Следующее, что я попробовал, было сравнить мои preseed.cfg с официальным примером файла preseed Ubuntu, чтобы увидеть, есть ли проблемы с установщиками di и Ubuntu, использующими / поддерживающими различные директивы preseed. Я не нашел большой разницы. Чтобы быть уверенным, я установил, дословно, официальный пример файла preseed Ubuntu в initrd ISO сервера 17.10, и получающийся в результате установщик все еще требует, чтобы человек отвечал на вопросы, как будто вообще не было preseed.

0 ответов

На сервере, чтобы получить ответы на вопросы по языку, вы должны добавить auto=true как вариант в меню загрузки.

Вот пример меню pxe с использованием auto=true (меню grub должно быть похожим):

label install
    menu default
    menu label ^Preseed Install
    kernel ubuntu-installer/amd64/linux
    append auto=true vga=normal initrd=ubuntu-installer/amd64/initrd.gz 

Взято с https://wiki.debian.org/DebianInstaller/Preseed:

Команда "auto" запускает установку в автоматическом режиме, в котором настройка имени хоста, локали и раскладки клавиатуры откладывается, чтобы на них можно было ответить из файла preseed, загруженного из сети. Вы можете использовать "install url=...", но вам придется отвечать на эти вопросы вручную, независимо от того, что у вас есть в конфигурации preseed. Если путь к серверу не указан, будет использоваться путь di // preseed.cfg, например di / stretch / preseed.cfg. Обратите внимание, что параметры конфигурации сети (netcfg/*) не могут быть применены через загруженный из сети файл preseed.cfg, поскольку сеть должна быть настроена до того, как можно будет получить файл preseed. Если необходимо объявить параметры конфигурации сети, необходимые параметры должны быть переданы как параметры ядра (например, netcfg/choose_interface=eth0).

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