Date: Wed, 26 Jun 2002 10:35:27 +0100 (IST)
From: Paul Jakma paulj@alphyra.ie
To: ilug@linux.ie
Subject: Re: [ILUG] Showmount "completeness and accurary"
On Wed, 26 Jun 2002, Niall O Broin wrote:
> If I simply remove /var/lib/nfs/rmtab how can I make it
be recreated
> correctly ?
you cant.
rmtab holds state of which clients have mounted fs's on your
server.
blow that file away and you've lost the info forever. a reboot of
your
server will require all clients to remount. (exportfs -r will
probably
do the same - eg if you add a new dir to be exported).
you can try exportfs -u host:/....
might work. or
- delete the specific lines you know arent valid anymore
- exportfs -r
> Niall
Quoting Neil Brown on the NFS list recently:
--------------------------------------------------------------------
Maybe a little explanation of how it all works will help:
/etc/exports contains information about how file systems
should
normally be exported. This is only read by exportfs.
/var/lib/nfs/etab contains information about what filesystems
should
be exported to whom at the moment.
/var/lib/nfs/rmtab contains a list of which filesystems
actually are
mounted by certain clients at the moment.
/proc/fs/nfs/exports contains information about what
filesystems are
exported to actual client (individual, not subnet or
whatever)
at the moment.
/var/lib/nfs/xtab is the same information as
/proc/fs/nfs/exports but
is maintained by nfs-utils instead of directly by the kernel.
It
is only used if /proc isn't mounted.
When a mount request arrives, mountd check .../etab to see if
that
host is allowed access. If it is, an entry is placed in .../rmtab
and
the filesystem is exported thus creating an entry in
/proc/fs/nfs/exports.
When you run
exportfs -io options host:/dir
then the entry in ../etab is changed, or a new one is
added.
If it is a subnet/wildcard/netgroup entry, then every line in
../rmtab
is checked to see if it matches. When a match is found, a
host-specific entry is given to (or changed in) the kernel.
When you run
exportfs -a
it makes sure that all entries in /etc/exports are properly
reflected
in .../etab. Any extra entries in etab are left alone. Once
the
correct content of etab has been determined, rmtab is examine
to
create a list of specific-host entries for any new entries in
etab.
This host-specific entries are given to the kernel.
When you run
exportfs -r
it ignores the prior contents of .../etab and initialises etab to
the
contents of /etc/exportfs. Then it inspects rmtab and make an
changes
to /proc/fs/nfs/export that are necessary.
In general, the safest thing to do is edit /etc/exports and
run
exportfs -r
If this leaves you will /proc/fs/nfs/exports containing
something that
you didn't expect, please show me the details
(exportfs,etab,rmtab)
and I will look again.
NeilBrown
-----------------------------------------------------------------------
regards,
--paulj