commit: ccf10d5bff7cf622888b45fed3eb79213f5743bd Author: Thomas Deutschmann <whissi <AT> gentoo <DOT> org> AuthorDate: Mon Jul 15 20:11:24 2019 +0000 Commit: Thomas Deutschmann <whissi <AT> gentoo <DOT> org> CommitDate: Mon Jul 15 20:11:24 2019 +0000 URL: https://gitweb.gentoo.org/proj/genkernel.git/commit/?id=ccf10d5b
linuxrc: Fix waiting on root
The idea of that loop is to respect ROOTDELAY and allow for slow
devices to come up. But if we will prompt already on first failure,
this doesn't work.
Signed-off-by: Thomas Deutschmann <whissi <AT> gentoo.org>
defaults/linuxrc | 27 ++++++---------------------
1 file changed, 6 insertions(+), 21 deletions(-)
diff --git a/defaults/linuxrc b/defaults/linuxrc
index 63e2360..5a95ece 100644
--- a/defaults/linuxrc
+++ b/defaults/linuxrc
@@ -623,13 +623,9 @@ do
if [ ${retval} -eq 0 ] && [ -n
"${ROOT_DEV}" ]
then
got_good_root=1
- good_msg "Detected
real_root=${ROOT_DEV}"
REAL_ROOT="${ROOT_DEV}"
+ good_msg "Detected
real_root=${ROOT_DEV}"
break
- else
- prompt_user "REAL_ROOT" "root
block device"
- got_good_root=0
- continue
fi
;;
ZFS*)
@@ -647,10 +643,10 @@ do
got_good_root=1
REAL_ROOT=${ROOT_DEV}
ROOTFSTYPE=zfs
+ good_msg "Detected
real_root=${ROOT_DEV}"
+ break
else
bad_msg "${ROOT_DEV} is
not a filesystem"
- prompt_user "REAL_ROOT"
"root block device"
- got_good_root=0
continue
fi
else
@@ -660,28 +656,17 @@ do
for i in ${BOOTFS}
do
zfs get type
${i} > /dev/null 2>&1
- retval=$?
-
- if [ ${retval}
-eq 0 ]
+ if [ $? -eq 0 ]
then
got_good_root=1
REAL_ROOT=${i}
ROOTFSTYPE=zfs
+
good_msg "Detected real_root=${ROOT_DEV}"
break
fi
done
- else
- got_good_root=0
fi
fi
-
- if [ ${got_good_root} -ne 1 ]
- then
- prompt_user "REAL_ROOT" "root
block device"
- got_good_root=0
- fi
-
- continue
;;
esac
@@ -692,7 +677,7 @@ do
fi
done # End of sleep loop waiting on root
- if [ "${REAL_ROOT}" = '' ]
+ if [ -z "${REAL_ROOT}" ]
then
# No REAL_ROOT determined/specified. Prompt user for
root block device.
prompt_user "REAL_ROOT" "root block device"
