Bug#686895: initscripts: /forcefsck: fsck -f undefined (e2fsck-ism)
Dmitry Bogatov
KAction at debian.org
Sun Nov 11 21:08:46 GMT 2018
control: tags -1 +patch
[2014-11-24 22:30] Petter Reinholdtsen <pere at hungry.com>
> Given that -f is force only for ext*, I suspect a more sensible
> approach is to only enable forcefsck for ext*, not disable it for
> btrfs.
Like this?
diff --git a/debian/src/initscripts/etc/init.d/checkroot.sh b/debian/src/initscripts/etc/init.d/checkroot.sh
index 9f70527a..c6c21344 100755
--- a/debian/src/initscripts/etc/init.d/checkroot.sh
+++ b/debian/src/initscripts/etc/init.d/checkroot.sh
@@ -22,6 +22,18 @@ FSCK_LOGFILE=/var/log/fsck/checkroot
. /lib/lsb/init-functions
. /lib/init/mount-functions.sh
+_want_force_fsck () {
+ set -- $(findmnt / | tail -n1)
+ case "$3" in
+ # Only ext* file systems support `-f' option to fsck. See #686895
+ (ext*)
+ [ -f /forcefsck ] || grep -q -s -w -i "forcefsck" /proc/cmdline
+ ;;
+ (*)
+ return 1
+ esac
+}
+
do_start () {
# Trap SIGINT so that we can handle user interrupt of fsck.
trap "" INT
@@ -203,12 +215,8 @@ Will restart in 5 seconds."
#
if [ "$rootcheck" = yes ]
then
- if [ -f /forcefsck ] || grep -q -s -w -i "forcefsck" /proc/cmdline
- then
- force="-f"
- else
- force=""
- fi
+ force=""
+ _want_force_fsck && force="-f"
if [ "$FSCKFIX" = yes ]
then
More information about the Debian-init-diversity
mailing list