Diskless boot fails when network card is reset before NFS root mount

Daniel Feenberg feenberg at nber.org
Fri Dec 11 17:46:19 UTC 2009

Our dozen diskless FreeBSD 7.0 machines are all able to diskless boot just 
fine. However, when we tried to set up a FreeBSD 8.0 root for them to boot 
from, the boot process would load up all the devices, and then fail right 
after the line "NFS ROOT: ..."

We boot using pxeboot. pxeboot then mounts our NFS root and runs the 
loader from /boot under there. After the beastie screen, loader runs the 
kernel. All this works fine under both 7 and 8.

On both 7 and 8, we see messages of the form "em0: link state changed to 
down","em0: link state changed to up". They happen right before or after 
NFS ROOT. Then, on version 8, we see error messages about /devfs not being 
found, and eventually /sbin/init not being found.

We surmise that what happens is that the kernel resets the ethernet 
interface, right before re-mounting the NFS root (note that the NFS root 
was already mounted back before the beastie screen). On 8, somehow the 
interface reset interferes with the nfs mount resulting in no root FS.

This problem seems to be referred to here:


Have others seen this issue? Is it a known bug? Is there a workaround or a 

It seems to us, not being kernel hackers, a particularly difficult problem 
to get a handle on because execution is being controlled by the kernel at 
that point, there is no loader script or rc script that one could insert 
debugging print statements into.

A complete description of our diskless boot procedure is given at:


which has worked well on several prior versions of FreeBSD. The network 
card is an Intel Pro/1000 card - well supported by FreeBSD.

   - Alex Aminoff
     National Bureau of Economic Research (nber.org)

   - Daniel Feenberg
     feenberg at nber.org
     National Bureau of Economic Research (nber.org)

More information about the freebsd-questions mailing list