我有一个 centos 机器,上面有一些 NFS 挂载点。我试图弄清楚这些 NFS 文件系统是如何挂载的。我发现如果我将 /usr/sbin/automount 重命名为其他名称,重新启动机器后,这些 NFS 将无法挂载。所以我可以确定 automount 会挂载这些 NFS。
但是 /etc/auto.master 没有显示任何有关这些 NFS 的信息。我想知道 automount 如何挂载哪个 NFS 可能存在哪些可能性?
$ cat /etc/auto.master
#
# Sample auto.master file
# This is an automounter map and it has the following format
# key [ -mount-options-separated-by-comma ] location
# For details of the format look at autofs(5).
#
/misc /etc/auto.misc
#
# NOTE: mounts done from a hosts map will be mounted with the
# "nosuid" and "nodev" options unless the "suid" and "dev"
# options are explicitly given.
#
/net -hosts
#
# Include central master map if it can be found using
# nsswitch sources.
#
# Note that if there are entries for /net or /misc (as
# above) in the included master map any keys that are the
# same will not be seen as the first read key seen takes
# precedence.
#
+auto.master
但在 下/var/run
,我发现了类似以下内容的内容:
prw------- 1 root root 0 Jan 20 04:36 autofs.fifo-bldmnt
prw------- 1 root root 0 Jan 20 04:36 autofs.fifo-blr
答案1
文件 auto.master 通常包含以下行:
/net -hosts
一个较老的替代方案是(曾经是):
/net /etc/auto.net
第一行是所谓的内置映射,指的是文件 /etc/hosts,第二行是所谓的程序映射(通常是一个简单的 shell 脚本),它可以更好地向您解释自动安装程序的工作原理。
我猜你的系统上有一些符号链接指向远程服务器上的某个路径/net
(或者在你的副本中使用任何 autofs 路径前缀来代替 /net /etc/auto.master
)。
每当访问锚点下方的路径时,/net
自动挂载程序就会捕获此尝试并尝试在那里挂载引用的目录。
例子:
假设自动挂载程序正在运行,并且网络中存在一个名为的 NFS 服务器,该服务器导出其文件中HostA
名为的目录。然后使用命令Documents
/etc/exports
cd /net/HostA/Documents
可以自动将该远程目录挂载在那里,而无需在 NFS 客户端上进行进一步配置。
内部结构:
/var/run/
与其他服务一样,automount 使用命名管道进行一些内部进程间通信。因此,问题中提到的 文件是由 automount 进程在实际安装任何内容之前为此目的创建的。
在 autofs 包的早期版本中/etc/auto.net
有一个脚本,它调用命令showmount
或kshowmount --no-headers -e
NFS-SERVER 从 NFS 服务器获取导出的文件系统列表。
showmount
/etc/exports
客户端上显示服务器端文件中定义的目录。此文件可能包含目录/
。但出于安全考虑,这从来都不是任何我见过的 Linux 发行版的默认设置。
答案2
我们有几个 RHEL6 系统,它们应该与 centOS 机器有些相似。我们的服务器设置在 /etc/exports 中
/data/nfs <IP-Range>(rw,sync,insecure,root_squash,no_subtree_check,fsid=0)
/data/nfs/data <IP-Range>(rw,nohide,sync,insecure,root_squash,no_subtree_check)
在客户端上,设置位于 /etc/fstab 中
<Hostname of NFS-Server>:/data /data/<mount-directory> nfs4 rw 0 0