problem setting NFSROOT

Huisman G gert at few.vu.nl
Fri Oct 24 17:57:46 CEST 2008


We use FAI for installing our debian servers (>10) and workstations (>200).
The setup for debian etch is working fine as was the case for sarge.

I am trying to make a setup for lenny now and I have run into a
problem.

We used to pass  NFSROOT=xxx.xxx.xxx.xxx:/path/to/nfsroot
from the hex-ip-adress file in /tftpboot/pxelinux.cfg/

I use a standard debian kernel vmlinuz-2.6.26-1-amd64 with
initrd.img-2.6.26-1-amd64. The NFS mount of the nfsroot fails
because the ROOTSERVER (xxx.xxx.xxx.xxx) is always set to
the address of our DHCP server, which is not the same as the NFS server.

I tried several kernel command line settings and initramfs.conf
settings and generating new initrd.imgages. But even turning of auto and
providing all parameters hard
in ip=clientname:servername:...  did not help

Digging a bit deeper I found out that this seems to be a bug of klibc
(ipconfig to be more precise).  In our DHCP server is no ROOTSERVER
specified. but ipconfig sets it to the addres of the DHCP server.
see snoop-file and ipconfig-out:

snoop-file:
DHCP: Message type = DHCPOFFER
DHCP: DHCP Server Identifier = 130.37.20.13
DHCP: IP Address Lease Time = 432000 seconds
DHCP: DNS Domain Name = few.vu.nl
DHCP: NetBIOS RFC 1001/1002 Name Servers at = 130.37.20.129
DHCP: NetBIOS RFC 1001/1002 Name Servers at = 130.37.20.132
DHCP: NetBIOS RFC 1001/1002 Name Servers at = 130.37.20.239
DHCP: NetBIOS Node Type = Hybrid Node (8)
DHCP: DNS Servers at = 130.37.20.3
DHCP: DNS Servers at = 130.37.20.10
DHCP: DNS Servers at = 192.31.231.42
DHCP: Router at = 130.37.192.1
DHCP: Subnet Mask = 255.255.255.0
DHCP: Client Hostname = vyneck.few.vu.nl

ipconfig-out
vyneck:~# /usr/lib/klibc/bin/ipconfig eth0
IP-Config: eth0 hardware address 00:1d:92:e1:9b:10 mtu 1500 DHCP RARP
IP-Config: eth0 guessed broadcast address 130.37.192.255
IP-Config: eth0 complete (from 130.37.20.13):
 address: 130.37.192.112   broadcast: 130.37.192.255   netmask:
255.255.255.0  
 gateway: 130.37.192.1     dns0     : 130.37.20.3      dns1   :
130.37.20.10   
 host   : vyneck.few.vu.nl                                               
 domain : few.vu.nl                                                      
 rootserver: 130.37.20.13 rootpath:
 filename  :


As a result the rootpath is taken from our 
"NFSROOT=xxx.xxx.xxx.xxx:/path/to/nfsroot"  from the kernel command line
but the rootserver part is overruled with the incorrect output from
ipconfig.

Has anyone else seen this behavior?
Any ideas for a fix or workaround?

I guess if we provide the rootserver from DHCP, we won't trigger this
ipconfig bug. I have not yet find out how to provide this from our
Solaris  DHCP server. Does anybody know hot to do this?

Gert Huisman

-- 
Gert Huisman                       Systeem programmeur    IT-groep FEW
email:     gert at few.vu.nl          Vrije Universiteit Amsterdam
telefoon:  +31 20 5987806          De Boelelaan 1081a,    kamer: S4.14
fax:       +31 20 5987653          1081 HV  Amsterdam, the Netherlands



More information about the linux-fai mailing list