Bug#901289: breaks boot in containers
Dmitry Bogatov
KAction at debian.org
Tue Dec 25 13:39:22 GMT 2018
control: severity -1 important
[2018-12-23 22:58] Adam Borowski <kilobyte at angband.pl>
> Uh oh... looks like the logsave issue suddenly became RCish: it
> prevents lxc containers from booting unattended:
> [...]
I can propose following ad-hoc solution. Objections? Better suggestions?
diff --git a/debian/src/initscripts/etc/init.d/checkfs.sh b/debian/src/initscripts/etc/init.d/checkfs.sh
index 44ac67f3..13a10d10 100755
--- a/debian/src/initscripts/etc/init.d/checkfs.sh
+++ b/debian/src/initscripts/etc/init.d/checkfs.sh
@@ -91,7 +91,7 @@ Continuing with system boot in 5 seconds."
if [ "$VERBOSE" = no ]
then
log_action_begin_msg "Checking file systems"
- logsave -s $FSCK_LOGFILE fsck $spinner -M -A $fix $force $FSCKTYPES_OPT
+ logsave_best_effort fsck $spinner -M -A $fix $force $FSCKTYPES_OPT
FSCKCODE=$?
if [ "$FSCKCODE" -eq 32 ]
@@ -112,7 +112,7 @@ Continuing with system boot in 5 seconds."
else
log_action_msg "Will now check all file systems"
fi
- logsave -s $FSCK_LOGFILE fsck $spinner -V -M -A $fix $force $FSCKTYPES_OPT
+ logsave_best_effort fsck $spinner -V -M -A $fix $force $FSCKTYPES_OPT
FSCKCODE=$?
if [ "$FSCKCODE" -eq 32 ]
then
diff --git a/debian/src/initscripts/etc/init.d/checkroot.sh b/debian/src/initscripts/etc/init.d/checkroot.sh
index ba35e439..b29ac72d 100755
--- a/debian/src/initscripts/etc/init.d/checkroot.sh
+++ b/debian/src/initscripts/etc/init.d/checkroot.sh
@@ -231,7 +231,7 @@ Will restart in 5 seconds."
if [ "$VERBOSE" = no ]
then
log_action_begin_msg "Checking root file system"
- logsave -s $FSCK_LOGFILE fsck $spinner $force $fix -t $roottype $rootdev
+ logsave_best_effort fsck $spinner $force $fix -t $roottype $rootdev
FSCKCODE=$?
if [ "$FSCKCODE" = 0 ]
then
@@ -241,7 +241,7 @@ Will restart in 5 seconds."
fi
else
log_daemon_msg "Will now check root file system"
- logsave -s $FSCK_LOGFILE fsck $spinner $force $fix -V -t $roottype $rootdev
+ logsave_best_effort fsck $spinner $force $fix -V -t $roottype $rootdev
FSCKCODE=$?
log_end_msg $FSCKCODE
fi
diff --git a/debian/src/initscripts/lib/init/mount-functions.sh b/debian/src/initscripts/lib/init/mount-functions.sh
index e453f6a8..7511761c 100644
--- a/debian/src/initscripts/lib/init/mount-functions.sh
+++ b/debian/src/initscripts/lib/init/mount-functions.sh
@@ -706,3 +706,13 @@ is_fastboot_active() {
done
return 1
}
+
+# This function does not actually belong here; it is duct-tape solution
+# for #901289.
+logsave_best_effort () {
+ if [ -x /sbin/logsave ] ; then
+ logsave -s "${FSCK_LOGFILE}" "$@"
+ else
+ "$@"
+ fi
+}
More information about the Debian-init-diversity
mailing list