Fac o instalare preseedată care implică afișarea debconf
Mesaje INFO chiar în interiorul programului de instalare debian. La sfârșitul late_command, mă aștept ca sistemul să scoată cdrom-ul de instalare și să-mi repornească instanța.Problema este că, în loc să se comporte astfel, revine la meniul de instalare debian, iar pentru a termina procesul de instalare îmi lasă doar opțiunea de a opri manual și de a porni de pe disc pentru a scoate cdrom-ul de instalare.
Este important să precizez că acest comportament neașteptat a apărut doar când am început să folosesc debconf INFO
mesaje (funcționa așa cum era de așteptat înainte, deci preseed.cfg
este în mod normal configurat corect), este astfel direct legat de acesta.
Mai jos sunt următoarele: My parte late_command
, scriptul care este lansat de către late_command
care implică debconf
, cel syslog
când se termină instalarea, este și ecranul în care sunt condus înapoi.
late_command
:
șir de comandă 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;
deployment-preseed-track.sh
(Practic scanează în mod viu jurnalul pentru a detecta progresul implementării)
#!/bin/sh
. /usr/share/debconf/confmodule
. „/home/machine/build/variables.sh”
logFile="/target${INSTALLATION_LOG_LOCATION}"
templatePath="/target/tmp/deployment_progress_tracker.templates"
pisică > „${templatePath}” << „EOF”
Șablon: deployment_progress_tracker/progress/fallback
Tip: text
Descriere: ${STEP}...
EOF
debconf-loadtemplate deployment_progress_tracker „${templatePath}”
db_progress START 0 1 deployment_progress_tracker/progress
watchLogs () {
deploymentDone=fals
in timp ce ! $deploymentDone
do
if [ -f "${logFile}" ]; atunci
pas=$(grep -E -o -a -h "Pasul de progres: .*" "${logFile}" | coada -1 | sed 's/Pasul de progres: //')
if [ -z "${pas##*$DEPLOYMENT_FINISHED*}" ]; atunci
deploymentDone=true
elif [ -n "${pas}" ]; atunci
db_subst deployment_progress_tracker/progress/fallback PASUL „${step}”
INFO db_progress deployment_progress_tracker/progress/fallback
fi
fi
somn 3
Terminat
}