nfsroot + multiple ethernet interfaces == boom
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
initramfs-tools (Ubuntu) |
New
|
Undecided
|
Unassigned |
Bug Description
Binary package hint: initramfs-tools
Tested on Hardy Heron.
Doing a PXE boot with NFS root on a machine with multiple network interfaces is ... interesting as the order in which the kernel/udev detect the interfaces is not necessarily the same as the PXE option rom.
In other words - say you have two interfaces, only one of which you can NFS boot off. Machine boots - PXE boots from that interface, gets IP and tftp information from dhcp server, finds tftp server, gets kernel and initrd, boots kernel, loads initrd.... and then it tries to load its nfs root filesystem.
We've passed ip=dhcp on the command line, as that's darn handy.
Unfortunately, the kernel/udev find the other interface first, and the machine tries to load the nfs root fs from the wrong interface. Booting fails.
The solution is obvious - you make sure the network interfaces are detected in the right order via /etc/udev/
However, that file is not in the list of udev files copied into the initrd by initramfstools. See line 39 in /usr/share/
Adding 70-persistent-
Hey Ward,
try the following:
add to the pxe booted kernel the appendline: ip=all
ipconfig should try to send dhcp requests to all known interfaces, means, it brings all interfaces up and sends out dhcp requests...one of the nics will get an IP and voila it gives you the result.
Regards,
\sh
PS: There are other issues with klibcs ipconfig tool, in combination with real network hardware like cisco and netconfigs with spanning trees and portfast config...etc. but this needs to be filed in another bug.