]> git.ipfire.org Git - thirdparty/dracut.git/commitdiff
iscsi/parse-iscsiroot.sh: use iBFT initiator name
authorHarald Hoyer <harald@redhat.com>
Wed, 12 Aug 2015 13:14:11 +0000 (15:14 +0200)
committerHarald Hoyer <harald@redhat.com>
Wed, 12 Aug 2015 13:17:33 +0000 (15:17 +0200)
modules.d/95iscsi/parse-iscsiroot.sh

index 2532adac351a5f2ba17727d98e130c62fb648cb8..a889da185831461cee399411d7d6f5f3cb1a4e74 100755 (executable)
@@ -58,7 +58,7 @@ if [ -n "$iscsiroot" ] ; then
 fi
 
 # iscsi_firmware does not need argument checking
-if [ -n "$iscsi_firmware" ] ; then
+if [ -n "$iscsi_firmware" ] || getargbool 0 rd.iscsi.ibft -d "ip=ibft"; then
     [ -z "$netroot" ] && netroot=iscsi:
     modprobe -b -q iscsi_boot_sysfs 2>/dev/null
     modprobe -b -q iscsi_ibft
@@ -97,6 +97,18 @@ if arg=$(getarg rd.iscsi.initiator -d iscsi_initiator=) && [ -n "$arg" ]; then
     fi
 fi
 
+# If not given on the cmdline and initiator-name available via iBFT
+if [ -z $iscsi_initiator ] && [ -f /sys/firmware/ibft/initiator/initiator-name ] && ! [ -f /tmp/iscsi_set_initiator ]; then
+    iscsi_initiator=$(while read line || [ -n "$line" ]; do echo $line;done < /sys/firmware/ibft/initiator/initiator-name)
+    echo "InitiatorName=$iscsi_initiator" > /run/initiatorname.iscsi
+    rm -f /etc/iscsi/initiatorname.iscsi
+    mkdir -p /etc/iscsi
+    ln -fs /run/initiatorname.iscsi /etc/iscsi/initiatorname.iscsi
+    systemctl restart iscsid
+    sleep 1
+    > /tmp/iscsi_set_initiator
+fi
+
 if [ -n "$iscsi_firmware" ] ; then
     echo "[ -f '/tmp/iscsistarted-firmware' ]" > $hookdir/initqueue/finished/iscsi_started.sh
 else