The FreeBSD Diary

The FreeBSD Diary (TM)

Providing practical examples since 1998

If you buy from Amazon USA, please support us by using this link.
[ HOME | TOPICS | INDEX | WEB RESOURCES | BOOKS | CONTRIBUTE | SEARCH | FEEDBACK | FAQ | FORUMS ]

Things look quiet here. But I've been doing a lot of blogging at dan.langille.org because I prefer WordPress now. Not all my posts there are FreeBSD related. I am in the midst of migrating The FreeBSD Diary over to WordPress (and you can read about that here). Once the migration is completed, I'll move the FreeBSD posts into the new FreeBSD Diary website.

NFS Portmap: RPC: Program not registered 27 June 2000
Share
Need more help on this topic? Click here
This article has 4 comments
Show me similar articles
Over the past 9 months or so, this problem has been a recurring issue.   It would go away only to return at a later date.  It was getting to be very annoying.  The crunch came this morning when I opened the XEON box in order to disconnect a noisy fan on a video card.  Don't worry, the card actually has lots of ventilation already.  It has an exchaust fan right beside it (less than 4mm from the heatsink on the card.

When I restarted the box, which acts both as an NFS server and an NFS client, the boot process was paused with the following message:

Mounting NFS file systemsNFS Portmap: RPC: Program not registered

I also found the following messages in /var/log/messages on the NFS server:

portmap[83487]: connect from 192.168.0.18 to getport(mountd): request from unauthorized host
portmap[83517]: connect from 192.168.0.18 to getport(nfs): request from unauthorized host

I mentioned this on IRC, and Unfurl suggested it was an /etc/hosts.allow (i.e. tcpwrappers) issue.  He suggested I change allow all for portmap.  I did.   Rebooted the client box (as that's the situation under which the problem occurred).   This time, the box rebooted properly and the NFS partitions were properly mounted.

Here's what I had in /etc/hosts.allow:

# Portmapper is used for all RPC services; protect your NFS!
# (IP addresses rather than hostnames *MUST* be used here)
portmap : 192.0.2.32/255.255.255.224 : allow
portmap : 192.0.2.96/255.255.255.224 : allow
portmap : ALL : deny

Here's what I changed it to:

# Portmapper is used for all RPC services; protect your NFS!
# (IP addresses rather than hostnames *MUST* be used here)
portmap : 192.0.2.32/255.255.255.224 : allow
portmap : 192.0.2.96/255.255.255.224 : allow
portmap : 192.168.0.0/255.255.255.0  : allow
portmap : ALL : deny

The original problem 27 June 2000
Today after I rebooted two boxes, I found that one couldn't remount some NFS partitions which resided on the other box.  During the boot process, the following message was displayed (it is split into two lines here for readability):
Mounting NFS file systemsNFS Portmap: RPC: 
                         Program not registered

This was on the client box.  The server box seemed fine.  I pressed control-C to allow the box to continue booting.  Then I tried to mount the partitions manually:

mount /www/unixathome.org/adsl
NFS Portmap: RPC: Program not registered

Following some advice, I did the following (but before you do that, see also the next section for more information):

On the server (kill the NFS daemon, restart mountd, and restartd the NFS daemon):

killall -TERM nfsd
killall -hup mountd
nfsd -u -t -n 4

One the client:

mount -v myserver:/nfs/path/ /local/path

where myserver is the name of the NFS server and /local/path is the mount point on the local box.

The above process worked.  The mount succeeded.  Life goes on.

More information 15 July 2000
Each time I reboot the NFS server, I find that the clients can't access it.  In the logs on the client, I find this:
nfs server mynfsserver:/path/to/stuff: not responding

So on the server I do this:

killall -term nfsd
nfsd -u -t -n 4

Soon afterwards, I find messages like this in the client:

nfs server mynfsserver:/path/to/stuff: is alive again

I also noticed that one of my mounts doesn't mount properly.  And that mountd was not running on the server.  So I started it manually by issuing the command:

mountd

Then, on the client, I manually mounted the missing volumes.  e.g.:

# mount -v ducky:/nfs/path /path/to/local/mount/point
ducky:/nfs/path on /path/to/local/mount/point (nfs)
Share
Need more help on this topic? Click here
This article has 4 comments
Show me similar articles