"RPC: program not registered" with new NFS server?
Garrett Cooper
yanegomi at gmail.com
Mon May 2 03:50:40 UTC 2011
On Sun, May 1, 2011 at 2:37 PM, Rick Macklem <rmacklem at uoguelph.ca> wrote:
>> 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:
> nfs_server_enable="YES"
>
> 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.)
Ok, I finally go things going. Here's what I did:
1. Added the following modules to MODULES_OVERRIDE:
# grep nfs /etc/src.conf
MODULES_OVERRIDE+= krpc nfscl nfscommon nfs_common nfsclient nfsd
nfslock nfslockd nfsserver nfssvc
Note that there are a lot more nfs services listed here.
2. Commented out everything sans nfs_server_enable and
nfs_client_enable -- so now everything NFS is run from the kernel
instead of userland minus, nfsd.
Now the NFS server and client are working fine via V3 and V4. It's
important to note this because the module list is less in the old NFS
server/client setup to get things fully functional. Example:
Old:
$ kldstat -v | egrep 'nfs|krpc'
162 nfssvc
164 krpc
161 nfsserver
158 nfs_common
163 nfslockd
160 nfs
159 nfslock
New:
# kldstat -v | egrep 'nfs|krpc'
11 1 0xffffffff80e19000 1aab0 nfsclient.ko (/boot/kernel/nfsclient.ko)
232 oldnfs
12 7 0xffffffff80e34000 13c88 krpc.ko (/boot/kernel/krpc.ko)
229 krpc
13 2 0xffffffff80e48000 d7e nfs_common.ko (/boot/kernel/nfs_common.ko)
230 nfs_common
14 5 0xffffffff80e49000 f52 nfslock.ko (/boot/kernel/nfslock.ko)
231 nfslock
15 1 0xffffffff80e4a000 1b8f4 nfsserver.ko (/boot/kernel/nfsserver.ko)
234 nfsserver
16 5 0xffffffff80e66000 422 nfssvc.ko (/boot/kernel/nfssvc.ko)
233 nfssvc
17 1 0xffffffff80e67000 30887 nfsd.ko (/boot/kernel/nfsd.ko)
237 nfsd
18 3 0xffffffff80e98000 10a03 nfscommon.ko (/boot/kernel/nfscommon.ko)
235 nfscommon
19 1 0xffffffff80ea9000 d94a nfslockd.ko (/boot/kernel/nfslockd.ko)
236 nfslockd
20 1 0xffffffff80eb7000 35500 nfscl.ko (/boot/kernel/nfscl.ko)
239 nfs
238 nfscl
Now the question I have is -- why are nfs_common and nfscommon not
the same module (I know the sources are different, and the
functionality is different, so this is more a rhetorical question than
anything else)?
Thanks!
-Garrett
More information about the freebsd-current
mailing list