[Pkg-iscsi-maintainers] Bug#804591: Bug#804591: open-iscsi: iscsi_auto flag should use iscsistart --fwparam_network in addition to -b

Scott Moser smoser at ubuntu.com
Mon Nov 9 21:40:49 UTC 2015

> > If we were to invoke 'iscsistart --fwparam_network' after having done
> > configure_networking, then the iscsi parameters would be in affect.
> > Its may be arguable that this is simply misconfiguration of the ip=
> > parameter.
> On the other hand, one could argue that one might want to overwrite
> the parameters set in the firmware with an explicit kernel commmand
> line.


> I think the case is definitely clear if iscsi_auto is specified
> without an ip= parameter, then iscsistart should take care of it.

Definitely.  Unfortunately, the case that I'm working on is with MAAS
which specifies a ip= command line to its provided iscsi server.  The
install environment is then provided over read-only iscsi.

It seems reasonable that you might have 'ip=' on the kernel command line
for reasons unrelated to iscsi entirely, and possibly referencing
different network devices.

> Btw. is there any way to test this in a VM? I don't have access to
> the corresponding hardware that sets these values, so I can't
> really test this myself.

Luckily, you *can* do it entirely within qemu and ipxe with a few minor
limitations.  Figuring out how to do that is non-trivial, but I've managed
my way through it.

I'll try to collect my notes and post back here.

> > Also of note, /run/net-<device>.conf will not be written if iscsistart
> > configures the networking as opposed to 'ipconfig' doing it.
> Could you give me the output of
> iscsistart -f
> on a system with iBFT? I think I could write a trivial POSIX
> shell parser for that that creates the corresponding
> /run/net-*.conf files. From the open-iscsi source I'm pretty
> confident I know what the output looks like, but I'd rather
> have real data to test that with.

Right, that was my thought too.  I  might suggest not reading iscsistart
-f, but rather the files from /sys/firmware/ibft.  Here is some output
from each, for those not adventuresome enough to try on their own. Note, i
added a carriage return to subnet mask that did not have one.

This system was booted with an pxe config that looked like this and
'break=top' on the kernel command line.  The values jsut then collected
from the initramfs:
set iscsi-host
set base-url
sanhook --drive 0x80 iscsi:${iscsi-host}::3260:1:inst-000-1
sanhook --drive 0x81 iscsi:${iscsi-host}::3260:1:inst-000-2
kernel ${base-url}/boot-kernel break=top
initrd ${base-url}/boot-initrd

(initramfs) iscsistart --fwparam_print
# BEGIN RECORD 2.0-873
iface.initiatorname =
iface.transport_name = tcp
iface.hwaddress = 52:54:00:12:34:56
iface.bootproto = STATIC
iface.ipaddress =
iface.subnet_mask =
iface.gateway =
iface.primary_dns =
iface.vlan_id = 0
iface.net_ifacename = eth0
node.name = inst-000-2
node.conn[0].address =
node.conn[0].port = 3260
node.boot_lun = 01000000

(initramfs) ipconfig eth0
IP-Config: eth0 hardware address 52:54:00:12:34:56 mtu 1500 DHCP RARP
IP-Config: eth0 guessed broadcast address
IP-Config: eth0 complete (dhcp from
 address:        broadcast:       netmask:
 gateway:         dns0     :         dns1   :
 rootserver: rootpath:
 filename  :

(initramfs) for f in $(find /sys/firmware/ibft/ -type f); do echo == $f ==; cat $f; done
== /sys/firmware/ibft/target0/lun ==
== /sys/firmware/ibft/target0/port ==
== /sys/firmware/ibft/target0/target-name ==
== /sys/firmware/ibft/target0/flags ==
== /sys/firmware/ibft/target0/index ==
== /sys/firmware/ibft/target0/chap-type ==
== /sys/firmware/ibft/target0/nic-assoc ==
== /sys/firmware/ibft/target0/ip-addr ==
== /sys/firmware/ibft/initiator/flags ==
== /sys/firmware/ibft/initiator/index ==
== /sys/firmware/ibft/initiator/initiator-name ==
== /sys/firmware/ibft/ethernet0/mac ==
== /sys/firmware/ibft/ethernet0/vlan ==
== /sys/firmware/ibft/ethernet0/flags ==
== /sys/firmware/ibft/ethernet0/index ==
== /sys/firmware/ibft/ethernet0/primary-dns ==
== /sys/firmware/ibft/ethernet0/subnet-mask ==
== /sys/firmware/ibft/ethernet0/gateway ==
== /sys/firmware/ibft/ethernet0/origin ==
== /sys/firmware/ibft/ethernet0/ip-addr ==

More information about the Pkg-iscsi-maintainers mailing list