You are not logged in.
Generally NFS4 works very well, but when restarting the server the id mapping fuction does not work, means: all rights are just replaced by the user "nobody". Form the daemon side the start sequence is rpcbind, nfs-common nfs-server. Actually I just need to restart the nfs-common service which starts idmapd and the mapping works fine again. Of course I can add an additional line in the rclocal which is executed after rc.conf, but this would be a rather dirty hack.
Hope this information is helpful.
nfs-common.conf
# Parameters to be passed to nfs-common (nfs clients & server) init script.
## If you do not set values for the NEED_ options, they will be attempted
# autodetected; this should be sufficient for most people. Valid alternatives
# for the NEED_ options are "yes" and "no".# Do you want to start the statd daemon? It is not needed for NFSv4.
NEED_STATD=yes# Options to pass to rpc.statd.
# See rpc.statd(8) for more details.
# N.B. statd normally runs on both client and server, and run-time
# options should be specified accordingly. Specifically, the Arch
# NFS init scripts require the --no-notify flag on the server,
# but not on the client e.g.
# STATD_OPTS="--no-notify -p 32765 -o 32766" -> server
# STATD_OPTS="-p 32765 -o 32766" -> client
STATD_OPTS=# Options to pass to sm-notify
# e.g. SMNOTIFY_OPTS="-p 32764"
SMNOTIFY_OPTS=""# Do you want to start the idmapd daemon? It is only needed for NFSv4.
NEED_IDMAPD=yes# Options to pass to rpc.idmapd.
# See rpc.idmapd(8) for more details.
IDMAPD_OPTS=# Do you want to start the gssd daemon? It is required for Kerberos mounts.
NEED_GSSD=no# Options to pass to rpc.gssd.
# See rpc.gssd(8) for more details.
GSSD_OPTS=# Where to mount rpc_pipefs filesystem; the default is "/var/lib/nfs/rpc_pipefs".
PIPEFS_MOUNTPOINT=# Options used to mount rpc_pipefs filesystem; the default is "defaults".
PIPEFS_MOUNTOPTS=
nfs-server.conf is just default.
Offline
I don't have anything to contribute unfortunately, just want to confirm this.
I'm running NIS so tried to start ypbind before nfs-common (through rc.conf) but it doesn't matter.
DAEMONS=(syslog-ng network rpcbind ypbind nfs-common nfs-server netfs crond sshd ntpd dbus hal)
Only a restart of nfs-common will start idmapd.
Mounting the NFSv4 export on a client (before restarting nfs-common) spawns this message on the server:
nfsd: nfsv4 idmapping failing: has idmapd not been started?
After the rpc.idmapd daemon is started correctly no message appears when clients mounts the export.
Here's the two only settings I changed in /etc/conf.d/nfs-common:
# Do you want to start the statd daemon? It is not needed for NFSv4.
NEED_STATD=no
# Do you want to start the idmapd daemon? It is only needed for NFSv4.
NEED_IDMAPD=yes
(Tried with and without quotes btw: ="no"/=no)
Even if I don't want STATD, it is starting up during boot anyway:
rpc.statd[2998]: Version 1.1.6 Starting
I want to convert the network to NFSv4 so testing this on Arch (test-server) and Fedora (client). Haven't tried NFSv4 server on another distro so don't know if the behaviour is the same..
Offline