[Pkg-sysvinit-devel] Bug#432750: More details

Eloy Paris peloy at debian.org
Mon Jul 23 16:52:43 UTC 2007


My NFS mounts in /etc/fstab are not getting automatically mounted at
boot time either so it looks like this bug is indeed still around. The
problem is that, while portmap gets started, statd is not running, so I
get:

Mon Jul 23 11:46:01 2007: mount.nfs: rpc.statd is not running but is required for remote locking
Mon Jul 23 11:46:01 2007:    Either use "-o nolocks" to keep locks local, or start statd.

To me it seems like the problem is that asynchronous NFS mounts are
being handled by an ifupdown script after the interface is up and there
seems to be something missing.

The key players are:

- rcS.d/S40networking (brings interfaces up)
- rcS.d/S43portmap
- rcS.d/S44nfs-common
- rcS.d/S45mountnfs.sh

Now, when an interface is brought up (via S40networking), the script
/etc/network/if-up.d/mountnfs is run. This script will start portmap if
/etc/fstab has NFS mounts that need to be mounted and if portmap is not
running.

The script will also run "/etc/init.d/nfs-common start" if there
are NFSv4 mounts in /etc/fstab. However, it seems to me like
we also need to start nfs-common (which will bring up statd)
in the case of any NFS mounts in /etc/fstab, not just NFSv4.
Changing /etc/network/if-up.d/mountnfs to unconditionally call
"/etc/init.d/nfs-common start" fixes the problem.

The other, perhaps simpler, solution is to avoid doing asynchronous NFS
mounts by adding:

ASYNCMOUNTNFS=no

to /etc/default/rcS

This way, S40networking will not call /etc/network/if-up.d/mountnfs when
the interface is brought up, and instead rcS.d/S45mountnfs.sh will do
it, but by this time, all the necessary daemons are up and running. This
is actually the way I prefer since the boot process is easier to follow
because ifupdown does not call behind the scenes a script that does the
NFS mounts.

I do think there's a bug in /etc/network/if-up.d/mountnfs because
nfs-common is not getting started before attempting to mount the
NFS shares. I think that's the root cause of this problem. Setting
ASYNCMOUNTNFS to "no" is just a workaround.

Cheers,

Eloy.-





More information about the Pkg-sysvinit-devel mailing list