How to not break nfsroot

Ferenc Wagner wferi at niif.hu
Mon Apr 19 10:37:30 UTC 2010


Hi,

When booting an NFS rooted system, one generally has to go through three
DHCP round trips:
 1. PXE BIOS does DHCP to setup networking for downloading the kernel
    and the initramfs image,
 2. initramfs does DHCP to setup networking for mounting the NFS root,
 3. the booting system does DHCP to set host and domain name and DNS
    resolvers.
But 3 is inherently problematic, because a cold-starting dhclient brings
down its network interface, and NFS root can't tolerate that, the system
deadlocks (cf. http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=553211)

Now, it's technically possible to transfer the DHCP reply packet from
the PXE phase down to dhclient.  It's also possible to create a lease
file for dhclient by parsing this packet.  But, to my knowledge, there's
no way to coax dhclient into skipping the PREINIT phase (that's where
dhclient-script unconditionally downs the network interface), even
though it's willing to skip discovery if it finds a valid lease.

Also, while it may be possible to skip any interaction with the DHCP
server if the valid lease (or the saved reply packet) contains all the
options the client config needs, it should still be acted upon, as
resolv.conf (as an example) should be set up.  If some information is
missing, a DHCPINFORM would probably be the most appropriate choice.

Now it seems to me that the nfsroot scenario can't be handled without
tailoring dhclient-script, but I'd like to hear your opinion about the
best handling of this whole problem domain.
-- 
Regards,
Feri.



More information about the dhcp-users mailing list