Comment 0 for bug 378167

Revision history for this message
ward (ward-pong) wrote :

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 finds the other interface first, and 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/rules.d/70-persistent-net.rules.

However, that file is not in the list of udev files copied into the initrd by initramfstools. See line 39 in /usr/share/initramfs-tools/hooks/udev.

Adding 70-persistent-net.rules there fixes this problem for me.