From e0a38de881c078150660726c00a843ff7bc2038f Mon Sep 17 00:00:00 2001 From: Colin Guthrie Date: Thu, 15 Dec 2011 21:53:46 +0000 Subject: [PATCH] mount-usr: Calculate and pass full fsck options when mounting /usr. Edited-By: Harald Hoyer --- modules.d/98usrmount/mount-usr.sh | 33 +++++++++++++++++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) diff --git a/modules.d/98usrmount/mount-usr.sh b/modules.d/98usrmount/mount-usr.sh index 8042d3a..3e23b15 100755 --- a/modules.d/98usrmount/mount-usr.sh +++ b/modules.d/98usrmount/mount-usr.sh @@ -5,6 +5,35 @@ type info >/dev/null 2>&1 || . /lib/dracut-lib.sh type fsck_single >/dev/null 2>&1 || . /lib/fs-lib.sh +fsck_usr() +{ + local _dev=$1 + local _fs=$2 + local _fsckoptions + + if [ -f "$NEWROOT"/fsckoptions ]; then + _fsckoptions=$(cat "$NEWROOT"/fsckoptions) + fi + + if [ -f "$NEWROOT"/forcefsck ] || getargbool 0 forcefsck ; then + _fsckoptions="-f $_fsckoptions" + elif [ -f "$NEWROOT"/.autofsck ]; then + [ -f "$NEWROOT"/etc/sysconfig/autofsck ] && . "$NEWROOT"/etc/sysconfig/autofsck + if [ "$AUTOFSCK_DEF_CHECK" = "yes" ]; then + AUTOFSCK_OPT="$AUTOFSCK_OPT -f" + fi + if [ -n "$AUTOFSCK_SINGLEUSER" ]; then + warn "*** Warning -- the system did not shut down cleanly. " + warn "*** Dropping you to a shell; the system will continue" + warn "*** when you leave the shell." + emergency_shell + fi + _fsckoptions="$AUTOFSCK_OPT $_fsckoptions" + fi + + fsck_single "$_dev" "$_fs" "$_fsckoptions" +} + mount_usr() { local _dev _mp _fs _opts _rest _usr_found _ret _freq _passno @@ -29,8 +58,8 @@ mount_usr() if [ "x$_usr_found" != "x" ]; then # we have to mount /usr - if [ "x0" != "x${_passno:-0}" ]; then - fsck_single "$_dev" "$_fs" + if [ "0" != "${_passno:-0}" ]; then + fsck_usr "$_dev" "$_fs" else : fi -- 2.7.4