这是redhat对于这个问题的描述(
https://bugzilla.redhat.com/show_bug.cgi?id=220873)
Bug 220873 - Starting RPC idmapd: Error: RPC MTAB does not exist.
Aliases:
Summary: Starting RPC idmapd: Error: RPC MTAB does not exist.
Status: CLOSED WONTFIX
Aliases: None (edit)
Product: Fedora
Component: util-linux (Show Fedora/util-linux bugs)
Version: 6
Platform: All Linux
Priority: medium Severity: medium (vote)
Target Milestone: ---
Assigned To: Karel Zak
QA Contact: Ben Levenson
URL:
Whiteboard: bzcl34nup
Keywords:
Depends on:
Blocks:
Show dependency tree
Reported: 2006-12-28 01:36 EDT by Need Real Name
Modified: 2008-05-06 13:15 EDT (History)
Fixed In Version:
Release Notes:
Clone Of:
--------------------------------------------------------------------------------
Restrict Group Visibility: Only users in any of the selected groups can view this bug:
(Unchecking all boxes makes this a more public bug.)
Current Groups: (edit)
None Set
Security Sensitive Bug (Check if this is a security related issue and should not be public)
Only members of a group can change the visibility of a bug for that group.
Attachments
Add an attachment (proposed patch, testcase, etc.)
External Bugs
--------------------------------------------------------------------------------
Description From Need Real Name 2006-12-28 01:36:01 EDT Description of problem:
If you stop the 'rpcidmapd' service and then do something like 'umount -a', then
it will also umount the rpc_pipefs.
Then when you try to restart 'rpcidmapd' service (or the 'nfs' service which in
turn also starts the 'rpcidmapd' service), you get the error:
Starting RPC idmapd: Error: RPC MTAB does not exist.
The reason is that the 'rpc_pipefs' filesystem has been unmounted. Now usually
loading the 'sunrpc' module will mount the 'rpc_pipefs'; however, in this case
'sunrpc' is already loaded and therefore not reloaded.
This is a confusing error that is not easy to decipher and solve.
Manually there are two solutions:
1. Unload and reload the 'sunrpc' module (which requires removing the modules
that depend on it and stopping the associated services)
2. Alternatively, mount the filesystem manually
mount -t rpc_pipefs sunpc /var/lib/nfs/rpc_pipefs
Similarly, if you do 'umount -a' but don't unload the 'nfsd' module, then the
'nfsd' filesystem will be unmounted and not remounted when you restart the nfs
service. However, in this case, the init script doesn't even warn you that the
filesystem is not mounted.
Again, manually you have two options
1. Unload and reload the 'nfsd' module
2. Manually create the filesystem
mount -t nfsd nfsd /proc/fs/nfsd
However, this is all NON-OBVIOUS and could trip people up (it took me many
wasted hours trying to figure out what is happening here :)
I think a better solution would be to test for the existence of the 'rpc_pipefs'
and 'nfsd' at the end of the init.d scrips starting the 'rpcidmapd' and 'nfs'
services RESPECTIVELY.
Then, if the filesystems are either pre-existing or were just created indirectly
by the loading of the 'sunrpc' and 'nfsd' modules then nothing would be
necessary. However, if the filesystems are not there, then the script would just
run the above 'mount' commands to create the filesystems.