diff options
author | Harald Hoyer <harald@redhat.com> | 2013-03-07 14:16:11 +0100 |
---|---|---|
committer | Harald Hoyer <harald@redhat.com> | 2013-03-07 14:17:49 +0100 |
commit | c3dd68fcf108fc80e0bdcac64d553b1a3727be7a (patch) | |
tree | dd333c0e7e5c042f87a667891886eee59bf0b233 | |
parent | 3e35441f187d3f9d472838b4b36f85d362852167 (diff) | |
download | dracut-c3dd68fcf108fc80e0bdcac64d553b1a3727be7a.tar.gz dracut-c3dd68fcf108fc80e0bdcac64d553b1a3727be7a.tar.bz2 dracut-c3dd68fcf108fc80e0bdcac64d553b1a3727be7a.zip |
iscsi: run iscsiroot even if no network configured
Also inject finished hooks for every iscsiroot netroot
-rwxr-xr-x | modules.d/95iscsi/iscsiroot.sh | 9 | ||||
-rwxr-xr-x | modules.d/95iscsi/parse-iscsiroot.sh | 11 |
2 files changed, 16 insertions, 4 deletions
diff --git a/modules.d/95iscsi/iscsiroot.sh b/modules.d/95iscsi/iscsiroot.sh index 463fa458..aa6c6ece 100755 --- a/modules.d/95iscsi/iscsiroot.sh +++ b/modules.d/95iscsi/iscsiroot.sh @@ -53,6 +53,8 @@ if getargbool 0 rd.iscsi.firmware -d -y iscsi_firmware ; then done iscsistart -b $iscsi_param + echo 'started' > "/tmp/iscsistarted-iscsi" + echo 'started' > "/tmp/iscsistarted-firmware" exit 0 fi @@ -146,9 +148,6 @@ handle_netroot() echo "iscsi_lun=$iscsi_lun . /bin/mount-lun.sh " > $hookdir/mount/01-$$-iscsi.sh fi - # inject new exit_if_exists - echo 'settle_exit_if_exists="--exit-if-exists=/dev/root"; rm "$job"' > $hookdir/initqueue/iscsi-settle.sh - # force udevsettle to break > $hookdir/initqueue/work @@ -163,6 +162,10 @@ handle_netroot() ${iscsi_netdev_name+--param iface.net_ifacename=$iscsi_netdev_name} \ ${iscsi_param} \ || : + + netroot_enc=$(str_replace "$1" '/' '\2f') + echo 'started' > "/tmp/iscsistarted-iscsi:${netroot_enc}" + } # loop over all netroot parameter diff --git a/modules.d/95iscsi/parse-iscsiroot.sh b/modules.d/95iscsi/parse-iscsiroot.sh index eccde3cc..286e3dcf 100755 --- a/modules.d/95iscsi/parse-iscsiroot.sh +++ b/modules.d/95iscsi/parse-iscsiroot.sh @@ -62,6 +62,7 @@ if [ -n "$iscsi_firmware" ] ; then netroot=${netroot:-iscsi} modprobe -q iscsi_boot_sysfs 2>/dev/null modprobe -q iscsi_ibft + echo "[ -f '/tmp/iscsistarted-firmware' ]" > $hookdir/initqueue/finished/iscsi_firmware_started.sh fi # If it's not iscsi we don't continue @@ -83,9 +84,17 @@ if ! [ -e /sys/module/iscsi_tcp ]; then modprobe -q iscsi_tcp || die "iscsiroot requested but kernel/initrd does not support iscsi" fi +if [ -n "$netroot" ] && [ "$root" != "/dev/root" ] && [ "$root" != "dhcp" ]; then + if ! getargbool 1 rd.neednet >/dev/null || ! getarg "ip="; then + initqueue --onetime --settled /sbin/iscsiroot dummy "$netroot" "$NEWROOT" + fi +fi + +netroot_enc=$(str_replace "$netroot" '/' '\2f') +echo "[ -f '/tmp/iscsistarted-$netroot_enc' ]" > $hookdir/initqueue/finished/iscsi_started.sh + # Done, all good! rootok=1 # Shut up init error check [ -z "$root" ] && root="iscsi" - |