Je travaille sur une image d'installation Ubuntu personnalisée et je suis un peu au-dessus de ma tête.
Nous avons un fichier de départ personnalisé qui exécute cette commande:
d-i preseed/early_command string /cdrom/Snare/update_v5.sh
Dans ce fichier de script, j'ai ajouté une vérification qui génère une erreur s'il ne trouve pas de fichier sur le système existant:
if [ ! -f /target/path/to/file.gz ]; then
logger custom-partition error "File not found, upgrade aborted!"
logger custom-partition error "Please run the Upgrade Preparation script first."
exit 1
fi
Lorsque la vérification échoue, elle génère un message d'erreur généralement inutile et fournit l'option continuer avec le processus d'installation.
Comment puis-je lui faire lancer un message d'erreur utile et bloquer les étapes d'installation supplémentaires?
Avec des conseils utiles de @CallmeV, j'ai trouvé une solution.
Dans le preseed/early_command
script, vous pouvez configurer un modèle debconf error
et forcer une boucle illimitée pour empêcher toute nouvelle progression dans le programme d'installation.
if [ ! -f /target/path/to/file.gz ]; then
. /usr/share/debconf/confmodule
cat > /tmp/Notification.template <<'!EOF!'
Template: snare-upgrade/notification
Type: error
Description: ERROR - Unable to upgrade!
Unable to upgrade your existing system... blah blah blah...
!EOF!
debconf-loadtemplate snare-upgrade /tmp/Notification.template
while [ 1 ]; do
db_input critical snare-upgrade/notification || true
db_go
db_get snare-upgrade/notification
done
fi
Comme je l'ai dit, merci à CallmeV , et à ces pages: