Comment 0 for bug 388060

Revision history for this message
Marc Tardif (cr3) wrote : netboot insall of live cd results in a manual network interface configuration

Binary package hint: casper

When netbooting the live CD over NFS, the network connection must be preserved throughout the live session so that the filesystem remains accessible. Currently, this is achieved by adding the following lines to /etc/network/interfaces which prevents network manager from attempting to reestablish a connection once the desktop finally appears:

  auto eth0
  iface eth0 inet manual

These lines are added by casper in a script called 23networking. Here are a few relevant lines from the script:

    if [ -z "${NETBOOT}" ]; then method="dhcp"; else method="manual"; fi
    if [ "$method" != dhcp ] || [ ! -x /root/usr/sbin/NetworkManager ]; then
        # ...
        cat >> "$IFFILE" <<EOF
auto $i
iface $i inet $method

EOF
    fi

So, this at least enables the live cd environment to be loaded over NFS. However, the problem is that this later gets propagated to the installed environment if ubiquity is called. This is done by the install.py script and here are the relevant lines from the script:

        for path in ('/etc/network/interfaces', '/etc/resolv.conf'):
            if os.path.exists(path):
                shutil.copy2(path, os.path.join(self.target, path[1:]))

In the most common general case, this is the desired behavior so that the user's network configuration is propagated from the live to the installed environment. However, in the case of netbooting the live cd, this is not necessarily the case because this environment needs to make assumptions about the network which might not apply anymore once the system boots from a driver rather than from the network.

I suspect the behavior should be that a best effort should be done when attempting to propagate the network configuration from the live environment when netbooting. This would mean preserving the configurations for all the network interfaces except the one used to mount the filesystem over NFS. The reasoning is that some assumptions were made about that interface which were only relevant in this context, so all bets are off about preserving that configuration.

In order to achieve this desired behavior, I would suspect that casper would need to communicate somehow to ubiquity that a particular part of the network configuration should not be propagated to the installed environment. This could probably be accomplished by using the configuration file as the communication interface. For example, the interfaces file could look something like:

  # BEGIN IGNORE
  auto eth0
  iface eth0 inet manual
  # END IGNORE

Then, ubiquity could easily parse that out when propagating the network configuration from the live to the installed environment.