Я выполняю предварительную установку, которая включает отображение debconf
ИНФО-сообщения прямо внутри программы установки Debian. В конце late_command я ожидаю, что система извлечет установочный компакт-диск и перезагрузит мой экземпляр.Проблема в том, что вместо того, чтобы вести себя таким образом, он возвращается в меню установщика Debian, и для завершения процесса установки он оставляет мне только возможность вручную завершить работу и загрузиться с диска, чтобы извлечь установочный компакт-диск.
Важно уточнить, что это неожиданное поведение появилось только тогда, когда я начал использовать ИНФОРМАЦИЯ о debconf
сообщений (раньше он работал как положено, поэтому preseed.cfg
обычно правильно сконфигурирован), таким образом, он напрямую связан с ним.
Ниже приведены следующие: Мои поздняя_командная часть
, скрипт, запускаемый поздняя_команда
который включает debconf
, системный журнал
когда установка закончится, es и экран, на котором я возвращаюсь.
поздняя_команда
:
d-i preseed/late_command строка \
cp -rf /cdrom/build /target/home/device; \
/bin/sh /target/home/machine/build/deployment-preseed-track.sh; \
chmod +x /target/home/machine/build/deployment-preseed.sh; \
in-target --pass-stdout ./home/machine/build/deployment-preseed.sh > /target/var/log/installation.log; \
in-target rm -rf /home/machine/build;
развертывание-preseed-track.sh
(Он в основном сканирует журнал, чтобы определить ход развертывания)
#!/бин/ш
. /usr/доля/debconf/confmodule
. "/home/machine/build/variables.sh"
logFile="/target${INSTALLATION_LOG_LOCATION}"
templatePath="/target/tmp/deployment_progress_tracker.templates"
кошка > "${templatePath}" << 'EOF'
Шаблон: deployment_progress_tracker/progress/fallback
Тип: текст
Описание: ${ШАГ}...
EOF
debconf-loadtemplate deploy_progress_tracker "${templatePath}"
db_progress НАЧАЛО 0 1 deployment_progress_tracker/прогресс
журналы просмотра () {
развертывание выполнено = ложь
пока ! $deploymentDone
делать
если [-f "${logFile}" ]; тогда
step=$(grep -E -o -a -h "Шаг выполнения: .*" "${logFile}" | tail -1 | sed 's/Шаг выполнения: //')
если [ -z "${шаг##*$DEPLOYMENT_FINISHED*}" ]; тогда
развертывание выполнено = истина
Элиф [-n "${шаг}"]; тогда
db_subst deploy_progress_tracker/progress/fallback ШАГ "${шаг}"
db_progress INFO deployment_progress_tracker/progress/fallback
фи
фи
спать 3
сделано
}