"RPC: program not registered" with new NFS server?

Rick Macklem rmacklem at uoguelph.ca
Sun May 1 21:37:55 UTC 2011

> Hi Rick, et all,
> I upgraded to a later kernel on two of my machines and am running
> into issues starting up the nfs kernel. Every time I try mounting like
> so:
> # mount -t nfs localhost:/scratch/ /mnt/
> or like so:
> # mount -t oldnfs localhost:/scratch/ /mnt/
> I run into this error:
> [tcp] localhost:/scratch: RPCPROG_NFS: RPC: Program not registered
> [tcp6] localhost:/scratch: RPCPROG_NFS: RPC: Program not registered
> I kldloaded nfsd, and then could start the mountd and nfsd
> services (this made some of my problems go away, in particular
> showmount -e looks sane), but things aren't sane. I know that nfs
> client capability works because I can mount remote NFS shares via amd
> and raw nfs mounts with another machine that I haven't upgraded and
> things are fine, but the server appears to be completely broken on my
> machines.
> Here is the configuration:
> $ grep NFS /root/FALLOUT
> #options NFSCL
> #options NFSCLIENT # Network Filesystem Client
> #options NFSSERVER # Network Filesystem Server
> #options NFSLOCKD # Network Lock Manager
> #options NFS_ROOT # NFS usable as /, requires NFSCLIENT
> $ grep nfs /etc/src.conf
> MODULES_OVERRIDE+= krpc nfscommon nfscl nfsclient nfsd nfslockd
> nfsserver
> # rc.conf snippet...
> rpcbind_enable="YES"
> mountd_enable="YES"
> rpc_lockd_enable="YES"
> rpc_statd_enable="YES"
> nfsd_enable="YES"
Well, I think the rc variable has always been:

which still works for the new one as well as old one.

The only other thing I can think of is if you are
pre-r220510 you need to create an empty stablerestart
file before the new nfs server will start.

Take a
look to see if the nfsd is running via "ps axHl"
or similar and check /var/log/messages for nfsd/mountd
related errors.

If you need to create the stable restart file, just do
the following on the server:
# install -o root -g wheel -m 600 /dev/null /var/db/nfs-stablerestart
(This shouldn't be necessary for post r220510 systems and pre-r220510
 systems shouldn't try and run the new server by default, so this
 shouldn't be your problem. Just "ls -l /var/db" to see if the file
 is there.)


More information about the freebsd-current mailing list