0

I am trying for network file system (NFS) booting between two systems.
I am using dhcp server to assign IP-address for client. And my kernel and root file system are present in server. My client is able to load the kernel. But can't able to mount the root filesystem. I am getting error regarding remote procedure call (RPC)

The following lines appear while booting at client side

NFS:  MNTPATH:  '/nfsroot'
NFS:  sending MNT request for 172.16.6.237:/nfsroot
NFS:  failed to create MNT RPC client, status=-101
NFS:  Unable to mount server 172.16.6.237, error -101
VFS:  Unable to mount root fs via NFS, trying floppy.
VFS:  Cannot open root device "nfs" or unknown-block(2,0)
Please append a correct "root=" boot option; here are the available partitions:
0000     bla bla bla
kernel panic- not syncing: VFS: Unable to mount root fs or unknown-block(2,0)

The above lines are few lines when I am doing NFS (network file system).

In kernel configuration i enabled all necessary flags for NFS support.

In above error The line related to RPC client is present in kernel fs/nfs/mount_clnt.c program.

I also came to know that the error occurs in rpc_ping() function which is present in net/sunrpc/clnt.c file.

How can I fix this?

edit:-

My dhcp.conf looks like this

{ allow booting;

allow bootp;

use-host-decl-names on;

ddns-update-style interim;

ignore client-updates;

next-server 172.16.6.237;

subnet 172.16.6.0 netmask 255.255.255.0 {

option subnet-mask  255.255.255.0;

range dynamic-bootp 172.16.6.10 172.16.6.254;

default-lease-time 21600;

max-lease-time 43200;

option domain-name-servers 127.0.0.1;

option routers      172.16.6.1;

filename "pxelinux.0";

}

host hostname {

                     hardware ethernet 74:27:ea:42:b7:b7;

                     fixed-address 172.16.6.238;

                     option root-path"172.16.6.237:/nfsroot";

           }

} And my pxelinu.cfg/default file looks like this

{

default openwrt

label openwrt

kernel openwrt-x86-generic-vmlinuz

append boot=nfs root=/dev/nfs nfsroot=172.16.6.237:/nfsroot,soft,vers=3,clientaddr=172.16.6.238 ip=dhcp rw nfsrootdebug

}

If I am giving proto=tcp then the error number will become -110 (time out)

If I removed proto=tcp the error number becomes -101 (Network unreachable)

  • What does the relevant line of /etc/fstab look like? How is the NFS filesystem being mounted? Have you considered using initramfs to make sure the kernel has proper NFS support? – samiam Feb 7 '14 at 14:45
  • @samiam thanks for the reply, My client is like diskless one. root file system is present in /nfsroot directory at server side. I am not using initramfs. And coming to /etc/fstab file, should i have to change it at server root file system or client root file system. If client root file system then can you please give me the tips – user3086351 Feb 7 '14 at 15:44
  • have you /etc/init.d/rpcbind start – Thorsten Staerk Feb 8 '14 at 0:32
  • @ThorstenStaerk I am having /etc/init.d/portmap instead of /etc/init.d/rpcbind. I saw in some websites that rpcbind is replaced by portmap . If so , I am running portmap by giving "service portmap restart". – user3086351 Feb 8 '14 at 11:27
0

It's been years since I've done the boot-by-NFS-from-a-remote-client bit, but you really do need to be sure that NFS is either compiled into your kernel statically, or that you're loading up the module via initrd, as samian suggested. Also -- and I assume you've already done this, but "better safe than sorry" -- you should be sure you can mount your other system, period: boot your client from USB or CD-ROM/DVD, and make sure the server can be mounted. If /etc/exports isn't set up properly, or if portmapper isn't running server-side, that could well be a problem.

  • What all the daemon processes should I run at the client side. And how can i run those daemons related to RPC . Please suggest me – user3086351 Feb 8 '14 at 11:20
  • Sorry for the delay; you should have process "portmapper" installed -- "apt-get install portmapper" or "yum install portmapper", though generally, it gets installed with the NFS server. You also want to make sure it's running: /etc/init.d/portmapper start . – ravenpi Feb 20 '14 at 19:19

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.