# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
# ex: ts=8 sw=4 sts=4 et filetype=sh
-# Don't continue if root is ok
-[ -n "$rootok" ] && return
-
# This script is sourced, so root should be set. But let's be paranoid
[ -z "$root" ] && root=$(getarg root=)
-[ -z "$netroot" ] && netroot=$(getarg netroot=)
-if [ "$root" = "dhcp" ] || [ "$root" = "dhcp6" ] || [ "$netroot" = "dhcp" ] ; then
+if [ -z "$netroot" ]; then
+ for netroot in $(getargs netroot=); do
+ [ "$netroot" = "dhcp" ] && break
+ [ "$netroot" = "dhcp6" ] && break
+ done
+ [ "$netroot" = "dhcp" ] || [ "$netroot" = "dhcp6" ] || unset netroot
+fi
+
+if [ "$root" = "dhcp" ] || [ "$root" = "dhcp6" ] || [ "$netroot" = "dhcp" ] || [ "$netroot" = "dhcp6" ]; then
# Tell ip= checker that we need dhcp
NEEDDHCP="1"
# Done, all good!
rootok=1
- if [ "$netroot" != "dhcp" ] ; then
+ if [ "$netroot" != "dhcp" ] && [ "$netroot" != "dhcp6" ]; then
netroot=$root
fi
netroot=$new_root_path
# FIXME!
+ unset rootok
for f in $hookdir/cmdline/90*.sh; do
[ -f "$f" ] && . "$f";
done
type getarg >/dev/null 2>&1 || . /lib/dracut-lib.sh
. /lib/cifs-lib.sh
-#Don't continue if root is ok
-[ -n "$rootok" ] && return
-
# This script is sourced, so root should be set. But let's be paranoid
[ -z "$root" ] && root=$(getarg root=)
-[ -z "$netroot" ] && netroot=$(getarg netroot=)
+
+if [ -z "$netroot" ]; then
+ for netroot in $(getargs netroot=); do
+ [ "${netroot%%:*}" = "cifs" ] && break
+ done
+ [ "${netroot%%:*}" = "cifs" ] || unset netroot
+fi
# Root takes precedence over netroot
if [ "${root%%:*}" = "cifs" ] ; then
-
- # Don't continue if root is ok
- [ -n "$rootok" ] && return
-
if [ -n "$netroot" ] ; then
warn "root takes precedence over netroot. Ignoring netroot"
-
fi
netroot=$root
unset root
# This script is sourced, so root should be set. But let's be paranoid
[ -z "$root" ] && root=$(getarg root=)
-[ -z "$netroot" ] && netroot=$(getarg netroot=)
+if [ -z "$netroot" ]; then
+ for netroot in $(getargs netroot=); do
+ [ "${netroot%%:*}" = "iscsi" ] && break
+ done
+ [ "${netroot%%:*}" = "iscsi" ] || unset netroot
+fi
[ -z "$iscsiroot" ] && iscsiroot=$(getarg iscsiroot=)
[ -z "$iscsi_firmware" ] && getargbool 0 rd.iscsi.firmware -y iscsi_firmware && iscsi_firmware="1"
# This script is sourced, so root should be set. But let's be paranoid
[ -z "$root" ] && root=$(getarg root=)
-[ -z "$netroot" ] && netroot=$(getarg netroot=)
+
+if [ -z "$netroot" ]; then
+ for netroot in $(getargs netroot=); do
+ [ "${netroot%%:*}" = "nbd" ] && break
+ done
+ [ "${netroot%%:*}" = "nbd" ] || unset netroot
+fi
# Root takes precedence over netroot
if [ "${root%%:*}" = "nbd" ] ; then
-
- # Don't continue if root is ok
- [ -n "$rootok" ] && return
-
if [ -n "$netroot" ] ; then
warn "root takes precedence over netroot. Ignoring netroot"
type getarg >/dev/null 2>&1 || . /lib/dracut-lib.sh
-#Don't continue if root is ok
-[ -n "$rootok" ] && return
-
# This script is sourced, so root should be set. But let's be paranoid
[ -z "$root" ] && root=$(getarg root=)
-[ -z "$netroot" ] && netroot=$(getarg netroot=)
[ -z "$nfsroot" ] && nfsroot=$(getarg nfsroot=)
+[ -n "$netroot" ] && oldnetroot="$netroot"
+
# netroot= cmdline argument must be ignored, but must be used if
# we're inside netroot to parse dhcp root-path
if [ -n "$netroot" ] ; then
- if [ "$netroot" = "$(getarg netroot=)" ] ; then
+ for n in $(getargs netroot=); do
+ [ "$n" = "$netroot" ] && break
+ done
+ if [ "$n" = "$netroot" ]; then
warn "Ignoring netroot argument for NFS"
netroot=$root
fi
# Continue if nfs
case "${netroot%%:*}" in
nfs|nfs4|/dev/nfs);;
- *) unset netroot; return;;
+ *)
+ if [ -n "$oldnetroot" ]; then
+ netroot="$oldnetroot"
+ else
+ unset netroot
+ fi
+ return
+ ;;
esac
# Check required arguments