Comment 28 for bug 236640

Revision history for this message
Etienne Goyer (etienne-goyer-outlands) wrote :

As I explained a couple months earlier (see comment 2), even if the path to iscsi-iname is fixed, it still fail in the end. The installer goes on just fine, but if you choose to configure a file system residing on an iSCSI target to be mounted at boot time (not as the root file system, just about any mount point), /etc/rcS.d/S30checkfs.sh will fail at boot and drop to a maintenance shell.

This is because the iSCSI block device is not brought up on boot correctly, and as such the file system residing on that iSCSI target cannot be checked/mounted. For it to be so, there need to be a valid node configuration file under /etc/iscsi/nodes/. This configuration file is being generated just fine by the open-iscsi udeb in the installer environment. However, it is *not* being copied to the root file system of the installation (/target). There are two problems:

1. The post-installation script of the udeb (debian/open-iscsi-udeb.finish-install in the source deb) is being installed in /lib/finish-install.d/. I think this is supposed to be /usr/lib/finish-install.d/.

2. There is a bug in debian/open-iscsi-udeb.finish-install. It copy the whole configuration directory with:

    cp -a /etc/iscsi /target/etc/iscsi

Which mean we end up with the installer iscsi configuration directory as /etc/iscsi/iscsi in the target, which is not what we want. I presume it should really be:

    cp -a /etc/iscsi /target/etc/

So that we have the configuration from the installer environment copied over to the target properly.

The above problems where found on both hardy and jaunty.

Moreover, there seems to be a race condition at boot time where open-iscsi is started before networking is ready, which also prevent the iSCSI block device to be available when /etc/rcS.d/S30checkfs.sh is being run. I am still investigating and will report a separate bug as appropriate.