Blob Blame History Raw
From f225f180e363a42307dfcdb962e751476dd1a210 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Mon, 2 Jul 2012 18:51:20 +0200
Subject: [PATCH] usrmount/mount-usr.sh: give emergency_shell if /usr mount
 failed

---
 modules.d/98usrmount/mount-usr.sh |   22 +++++++++++++---------
 1 file changed, 13 insertions(+), 9 deletions(-)

diff --git a/modules.d/98usrmount/mount-usr.sh b/modules.d/98usrmount/mount-usr.sh
index 5cf4eb8..3173241 100755
--- a/modules.d/98usrmount/mount-usr.sh
+++ b/modules.d/98usrmount/mount-usr.sh
@@ -74,17 +74,21 @@ mount_usr()
             if [ "0" != "${_passno:-0}" ]; then
                 fsck_usr "$_dev" "$_fs" "$_opts"
                 _fsck_ret=$?
-                echo $_fsck_ret >/run/initramfs/usr-fsck
+                [ $_fsck_ret -ne 255 ] && echo $_fsck_ret >/run/initramfs/usr-fsck
             fi
         fi
-        if [ $_fsck_ret -ne 255 ]; then
-            if getargbool 0 rd.usrmount.ro; then
-                info "Mounting /usr (read-only forced)"
-                mount -r "$NEWROOT/usr" 2>&1 | vinfo
-            else
-                info "Mounting /usr"
-                mount "$NEWROOT/usr" 2>&1 | vinfo
-            fi
+        if getargbool 0 rd.usrmount.ro; then
+            info "Mounting /usr (read-only forced)"
+            mount -r "$NEWROOT/usr" 2>&1 | vinfo
+        else
+            info "Mounting /usr"
+            mount "$NEWROOT/usr" 2>&1 | vinfo
+        fi
+        if ! ismounted /usr; then
+            warn "Mounting /usr to $NEWROOT/usr failed"
+            warn "*** Dropping you to a shell; the system will continue"
+            warn "*** when you leave the shell."
+            emergency_shell
         fi
     fi
 }