[Bug 378167] [NEW] nfsroot + multiple ethernet interfaces == boom

ward ward at pong.be
Tue May 19 01:50:43 UTC 2009


Public bug reported:

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/rules.d/70-persistent-
net.rules, and run update-initramfs -u.

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.

** Affects: initramfs-tools (Ubuntu)
     Importance: Undecided
         Status: New

** Description changed:

  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
+ 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.
+ 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/rules.d/70-persistent-
- net.rules.
+ net.rules, and run update-initramfs -u.
  
  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.

-- 
nfsroot + multiple ethernet interfaces == boom
https://bugs.launchpad.net/bugs/378167
You received this bug notification because you are a member of Kernel
Bugs, which is subscribed to initramfs-tools in ubuntu.




More information about the kernel-bugs mailing list