From c89b3763fb9b940e43c61b2dba1653a0d5229b91 Mon Sep 17 00:00:00 2001 From: Roy Marples Date: Thu, 17 Apr 2008 00:09:34 +0000 Subject: Respect shutdown -F on Linux to force fsck, #59 --- init.d/fsck.in | 10 +++++++--- init.d/root.in | 7 ++++--- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/init.d/fsck.in b/init.d/fsck.in index f469ce81..3eeba63c 100644 --- a/init.d/fsck.in +++ b/init.d/fsck.in @@ -27,14 +27,18 @@ _reboot() { start() { - local reboot_opts= fsck_opts= p= + local reboot_opts= fsck_opts= p= check_extra= if [ -e /fastboot ]; then ewarn "Skipping fsck due to /fastboot" return 0 fi + if [ -e /forcefsck ]; then + fsck_opts="${fsck_opts} -f" + check_extra="(check forced)" + fi - ebegin "Checking local filesystems" + ebegin "Checking local filesystems ${check_extra}" for p in ${fsck_passno}; do local IFS="${_IFS}" case "${p}" in @@ -45,7 +49,7 @@ start() done if [ "${RC_UNAME}" = "Linux" ]; then - fsck_opts="-C0 -T" + fsck_opts="${fsck_opts} -C0 -T" if [ -z "${fsck_passno}" ]; then fsck_args=${fsck_args--A -p} if echo 2>/dev/null >/.test.$$; then diff --git a/init.d/root.in b/init.d/root.in index aba6415f..ec0466c3 100644 --- a/init.d/root.in +++ b/init.d/root.in @@ -13,7 +13,7 @@ depend() start() { if echo 2>/dev/null >/.test.$$; then - rm -f /.test.$$ /fastboot + rm -f /.test.$$ /fastboot /forcefsck return 0 fi @@ -22,6 +22,7 @@ start() Linux) mount -n -o remount,rw /;; *) mount -u -o rw /;; esac - eend $? "Root filesystem could not be mounted read/write" - rm -f /fastboot + if eend $? "Root filesystem could not be mounted read/write"; then + rm -f /fastboot /forcefsck + fi } -- cgit v1.2.3