Установщик Debian не завершает работу после предварительной установки
Я выполняю предварительную установку, которая включает в себя отображение сообщений INFO прямо внутри установщика Debian. Я ожидаю, что в конце late_command система извлечет установочный компакт-диск и перезагрузит мой экземпляр. Проблема в том, что вместо того, чтобы вести себя таким образом, он возвращается в меню установщика Debian и для завершения процесса установки оставляет мне только возможность вручную завершить работу и загрузиться с диска, чтобы извлечь установочный компакт-диск.
Важно уточнить, что это неожиданное поведение появилось только тогда, когда я начал использоватьdebconf INFO
сообщения (раньше оно работало как положено, поэтомуpreseed.cfg
обычно правильно настроен), таким образом, это напрямую связано с ним.
Ниже приведены следующие: Моиlate_command part
, скрипт, запускаемый с помощьюdebconf
,syslog
когда установка завершится, появится экран, на котором меня вернут обратно.
late_command
:
d-i preseed/late_command string \
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;
deployment-preseed-track.sh
(В основном он сканирует журнал, чтобы определить ход развертывания)
#!/bin/sh
. /usr/share/debconf/confmodule
. "/home/machine/build/variables.sh"
logFile="/target${INSTALLATION_LOG_LOCATION}"
templatePath="/target/tmp/deployment_progress_tracker.templates"
cat > "${templatePath}" << 'EOF'
Template: deployment_progress_tracker/progress/fallback
Type: text
Description: ${STEP}...
EOF
debconf-loadtemplate deployment_progress_tracker "${templatePath}"
db_progress START 0 1 deployment_progress_tracker/progress
watchLogs () {
deploymentDone=false
while ! $deploymentDone
do
if [ -f "${logFile}" ]; then
step=$(grep -E -o -a -h "Progress-step: .*" "${logFile}" | tail -1 | sed 's/Progress-step: //')
if [ -z "${step##*$DEPLOYMENT_FINISHED*}" ]; then
deploymentDone=true
elif [ -n "${step}" ]; then
db_subst deployment_progress_tracker/progress/fallback STEP "${step}"
db_progress INFO deployment_progress_tracker/progress/fallback
fi
fi
sleep 3
done
}