Mailing List Archive

network boot nfs as root
Hello everyone,

I am using pxelinux to boot kernel from network, which goes ok.
But when root must be mounted from NFS, I get the following code:

Looking up port 100003/2 on 192.168.1.1
RPC: sendmsg returned error 22
portmap: RPC call returned error 22
ROOT-NFS: unable to get nfsd port number from server, using default
looking up port of RPC 100005/1 on 192.168.1.1
RPC: sendmsg returned error 22
portmap: RPC call returned error 22
ROOT-NFS:unable to get nfsd port number from server, using default
RPC: sendmsg returned error 22
mount: RPC call returned error 22
ROOT-NFS: server returned error -22 while mounting 192.168.1.1:/netboot/base
VFS: cannot open root device via nfs, trying floppy

server is indeed 192.168.1.1 and root of client system is in /netboot/base
inetd, dhcpd, rcp.mountd, rcp.nfsd are running
/etc/exports: /netboot/base 192.168.1.0/255.255.255.0(rw,no_root_squash)
/etc/hosts.allow: ALL:ALL (for now)

dhcpd seems to work fine: clients gets ip-address.
tftp from inetd should be working fine since the kernel is received by client and executed.
- though I get in log: in.tftpd:tftp: client does not accept options. I dont know if NFS needs tftp in some way, if so tftp could be the cause.
Network (imbedded) card is recognised and passes self test.
socket of nfs tcp is listening.

In netstat -p |grep rpc I get:
dgram 56732 rpc.nfsd
dgram 55905 rpc.mountd
While client looks for socket 100003/2 or 100005/1, mine rpc.mountd is on socket 55905. Maybe it is a reason for an error 22.


If someone could tell me more I would appreciate very much.
network boot nfs as root [ In reply to ]
Hi,

<robvog@hetnet.nl> schrieb am 14.05.02:
> I am using pxelinux to boot kernel from network, which goes ok.
> But when root must be mounted from NFS, I get the following code:
>
> Looking up port 100003/2 on 192.168.1.1
> RPC: sendmsg returned error 22
> portmap: RPC call returned error 22
> ROOT-NFS: unable to get nfsd port number from server, using default
> looking up port of RPC 100005/1 on 192.168.1.1
> RPC: sendmsg returned error 22
> portmap: RPC call returned error 22
> ROOT-NFS:unable to get nfsd port number from server, using default
> RPC: sendmsg returned error 22
> mount: RPC call returned error 22
> ROOT-NFS: server returned error -22 while mounting 192.168.1.1:/netboot/base
> VFS: cannot open root device via nfs, trying floppy
>
> server is indeed 192.168.1.1 and root of client system is in /netboot/base
> inetd, dhcpd, rcp.mountd, rcp.nfsd are running
> /etc/exports: /netboot/base 192.168.1.0/255.255.255.0(rw,no_root_squash)
> /etc/hosts.allow: ALL:ALL (for now)
>
> dhcpd seems to work fine: clients gets ip-address.
> tftp from inetd should be working fine since the kernel is received by client and executed.
> - though I get in log: in.tftpd:tftp: client does not accept options. I dont know if NFS needs tftp in some way, if so tftp could be the cause.

This is the usual behaviour. The PXE rom asks for some options, and
then resets the connection. In turn a second tftp request is done.

> Network (imbedded) card is recognised and passes self test.
> socket of nfs tcp is listening.
>
> In netstat -p |grep rpc I get:
> dgram 56732 rpc.nfsd
> dgram 55905 rpc.mountd
> While client looks for socket 100003/2 or 100005/1, mine rpc.mountd is on socket 55905. Maybe it is a reason for an error 22.

The port numbers are RPC numbers, not sockets. Try 'rpcinfo -p' for these.

Looks like you exported the NFS directory wrong. Did you try to mount
this directory by another client? How do you tell the kernel the
root FS?

If the portmap calls fail the server doesn't want to talk to the
client, perhaps it wants the client to be in the DNS, or else.
Did you try to put the IP of the client into /etc/exports instead
of the network address?

BTW, this has nothing to do with pxelinux, it's a kernel issue.

Regards,

Josef

________________________________________________________________
Keine verlorenen Lotto-Quittungen, keine vergessenen Gewinne mehr!
Beim WEB.DE Lottoservice: http://tippen2.web.de/?x=13
network boot nfs as root [ In reply to ]
Hi,
<robvog@hetnet.nl> schrieb am 15.05.02:
> > How do you tell the kernel the root FS?
> I have:
> In /tftpboot/pxelinux.cfg/default
> default linux root=/dev/nfs nfsaddrs=192.168.1.1:192.168.1.1:192.168.1.1:255.255.255.0:netserver:eth0 nfsroot=192.168.1.1:/netboot/base
> where netboot/base is where root for client system begins.

oops, this looks bad. nfsaddrs tells the kernel also the _client's_
address, so you've configured your client to be 192.168.1.1,
and the server (& gateway) to be the same - but I doubt there's some
NFS server running on localhost 8-).

BTW, this is nowerdays renamed to 'ip=', look into
<kerneltree>/Documentation/nfsroot.txt for the full explanation of
the options.

I use 'DHCP Autoconfig' in the kernel, so I just give 'ip=dhcp'
to the kernel, and the kernel does (another) DHCP. Also
you could try 'ipappend 1' in the pxelinux config file, then pxelinux
will give the appropriate 'ip=' to the kernel, to avoid an additional
DHCP.

Regards,

Josef

________________________________________________________________
Keine verlorenen Lotto-Quittungen, keine vergessenen Gewinne mehr!
Beim WEB.DE Lottoservice: http://tippen2.web.de/?x=13
Re: network boot nfs as root [ In reply to ]
Hi there,

>> > How do you tell the kernel the root FS?
>> I have:
>> In /tftpboot/pxelinux.cfg/default
>> default linux root=/dev/nfs nfsaddrs=192.168.1.1:192.168.1.1:192.168.1.1:255.255.255.0:netserver:eth0 nfsroot=192.168.1.1:/netboot/base
>> where netboot/base is where root for client system begins.

>I have several pxelinux servers set up. here's part of the config
>for one of them.

>LABEL linux
> KERNEL pxe-vmlinuz
> APPEND root=/dev/nfs ip=dhcp nfsroot=192.168.99.1:/tftpboot/commonroot/

IT WORK'S!!

It was indeed my pxelinux configuration file that was failing. I took the above and adapted it to mine settings, and the directory gets mounted by the client. It won't do much beyond that since I haven't adapted the client's root directory not yet.
I start at that now.

Thank you very much Josef and Jim.


Rob