dracut/0020-usrmount-mount-usr.sh-...

46 lines
1.7 KiB
Diff

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
}