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} \ || : }