diff --git a/dracut.cmdline.7.asc b/dracut.cmdline.7.asc
index bff2e280..89b8c215 100644
--- a/dracut.cmdline.7.asc
+++ b/dracut.cmdline.7.asc
@@ -358,6 +358,21 @@ netroot=iscsi:[2001:DB8::1]::::iqn.2009-06.dracut:target0
**root=**_???_ **netroot=**iscsi **rd.iscsi.firmware=1**::
will read the iscsi parameter from the BIOS firmware
+**rd.iscsi_param=**__::
+ will be passed as "--param " to iscsistart.
+ This parameter can be specified multiple times.
+ e.g.:
++
+----
+"netroot=iscsi iscsi_firmware rd.iscsi_param=node.session.timeo.replacement_timeout=30"
+----
++
+will result in
++
+----
+iscsistart -b --param node.session.timeo.replacement_timeout=30
+----
+
FCoE
~~~~
**fcoe=**__:_{dcb|nodcb}_::
diff --git a/modules.d/95iscsi/iscsiroot.sh b/modules.d/95iscsi/iscsiroot.sh
index 57a3982f..dc0a6468 100755
--- a/modules.d/95iscsi/iscsiroot.sh
+++ b/modules.d/95iscsi/iscsiroot.sh
@@ -46,7 +46,12 @@ if getargbool 0 rd.iscsi.firmware -y iscsi_firmware ; then
printf 'ENV{DEVTYPE}!="partition", SYMLINK=="disk/by-path/*-iscsi-*-*", SYMLINK+="root"\n' >> /etc/udev/rules.d/99-iscsi-root.rules
udevadm control --reload
fi
- iscsistart -b
+
+ for p in $(getargs rd.iscsi_param iscsi_param); do
+ iscsi_param="$iscsi_param --param $p"
+ done
+
+ iscsistart -b $iscsi_param
exit 0
fi
@@ -79,6 +84,9 @@ handle_netroot()
[ -n "$arg" ] && iscsi_in_username=$arg
arg=$(getargs rd.iscsi.in.password iscsi_in_password=)
[ -n "$arg" ] && iscsi_in_password=$arg
+ for p in $(getargs rd.iscsi_param iscsi_param); do
+ iscsi_param="$iscsi_param --param $p"
+ done
parse_iscsi_root "$1" || return 1
@@ -149,6 +157,7 @@ handle_netroot()
${iscsi_in_password+-W $iscsi_in_password} \
${iscsi_iface_name+--param iface.iscsi_ifacename=$iscsi_iface_name} \
${iscsi_netdev_name+--param iface.net_ifacename=$iscsi_netdev_name} \
+ ${iscsi_param} \
|| :
}