summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'scripts')
-rw-r--r--scripts/local2
-rwxr-xr-xscripts/local-top/mdrun2
-rw-r--r--scripts/nfs35
3 files changed, 20 insertions, 19 deletions
diff --git a/scripts/local b/scripts/local
index e7bf23e..299fc65 100644
--- a/scripts/local
+++ b/scripts/local
@@ -48,7 +48,7 @@ mountroot ()
# Get the root filesystem type if not set
if [ -z "${ROOTFSTYPE}" ]; then
eval $(fstype < ${ROOT})
- else
+ else
FSTYPE=${ROOTFSTYPE}
fi
diff --git a/scripts/local-top/mdrun b/scripts/local-top/mdrun
index da890c5..f733656 100755
--- a/scripts/local-top/mdrun
+++ b/scripts/local-top/mdrun
@@ -16,7 +16,7 @@ prereqs)
esac
if [ -e /scripts/local-top/mdadm ]; then
- exit 0
+ exit 0
fi
unset raidlvl
diff --git a/scripts/nfs b/scripts/nfs
index f42ed22..c66e2a1 100644
--- a/scripts/nfs
+++ b/scripts/nfs
@@ -2,6 +2,8 @@
# FIXME This needs error checking
+retry_nr=0
+
# parse nfs bootargs + launch ipconfig and nfsmount
do_nfsmount()
{
@@ -20,19 +22,21 @@ do_nfsmount()
*)
ipconfig -d $IPOPTS
- # grab device entry from full line
+ # grab device entry from ip option
NEW_DEVICE=${IPOPTS#*:*:*:*:*:*}
- NEW_DEVICE=${NEW_DEVICE%:*}
+ if [ "${NEW_DEVICE}" != "${IPOPTS}" ]; then
+ NEW_DEVICE=${NEW_DEVICE%:*}
+ else
+ # wrong parse, possibly only a partial string
+ NEW_DEVICE=
+ fi
if [ -n "${NEW_DEVICE}" ]; then
DEVICE="${NEW_DEVICE}"
fi
- # grab server-ip
- SERVER_IP=${IPOPTS#*:}
- SERVER_IP=${SERVER_IP%:*:*:*:*:*:*}
;;
esac
-
- # FIXME: source ipconfig output - might overwrite aboves
+
+ # source relevant ipconfig output
. /tmp/net-${DEVICE}.conf
# get nfs root from dhcp
@@ -45,13 +49,8 @@ do_nfsmount()
NFSOPTS="-o ${NFSROOT#*,}"
fi
NFSROOT=${NFSROOT%%,*}
- # server-ip could be passed by ip
if [ "${NFSROOT#*:}" = "$NFSROOT" ]; then
- if [ -n "${SERVER_IP}" ]; then
- NFSROOT="${SERVER_IP}:${NFSROOT}"
- else
- NFSROOT=${ROOTSERVER}:${ROOTPATH}
- fi
+ NFSROOT=${ROOTSERVER}:${NFSROOT}
fi
fi
@@ -92,13 +91,15 @@ mountroot()
fi
# loop until nfsmount succeds
- # FIXME: another place of init bin hardcoding
- while [ ${delay} -gt 0 ] && [ ! -e ${rootmnt}/sbin/init ]; do
+ while [ ${delay} -gt 0 ] && [ ! -e ${rootmnt}${init} ]; do
+ [ ${retry_nr} -gt 0 ] && \
[ "$quiet" != "y" ] && log_begin_msg "Retrying nfs mount"
- do_nfsmount
+ do_nfsmount
# FIXME: ipconfig loops every min at least - better param??
delay=$(( ${delay} - 1 ))
- [ "$quiet" != "y" ] && log_end_msg
+ [ ${retry_nr} -gt 0 ] && [ "$quiet" != "y" ] && log_end_msg
+ [ ! -e ${rootmnt}/sbin/init ] && /bin/sleep 0.1
+ retry_nr=$(( ${retry_nr} + 1 ))
done
[ "$quiet" != "y" ] && log_begin_msg "Running /scripts/nfs-bottom"