RHEL 8.3 64 位
autofs.x86_64 1:5.1.4-43.el8
我正在尝试autofs
为我的系统启用。我已经按照教程进行了操作,虽然它们很有意义,但网络驱动器没有安装,并且在某些情况下会出现一些奇怪的行为。一、配置文件
/etc/auto.master.d/mount.nfs:
/home/me/ /etc/auto.me.nfs
/etc/auto.me.nfs:
nas -fstype=nfs4 nas:/data/directory
现在当我运行时:
service autofs start
它应该挂载nas:/data/directory
-> /home/me/nas
,对吗?将发生以下两种情况之一:
- 没有什么。该目录
/home/me/nas
包含所有本地内容,并且df -h
没有显示任何安装到该位置的内容。 - 我的主目录将只包含
nas
. 它显示在 df -h 中,并且可以访问远程文件。然而,其他一切都消失了。一个ls -l
on/home/
显示我的主目录由root.root
命令:
mount nas:/data/directory /home/me/nas
工作得很好,从 NFS 目录继承所有权和权限。我错过了什么?是否有日志可以查看 autofs 正在尝试做什么?
经典的 autofs
情况1)可能是由于您
/etc/auto.master.d/mount.nfs
没有被命名/etc/auto.master.d/mount.autofs
:根据auto.master(5)
手册页和配置文件中的注释,其中的/etc/auto.master
任何文件都auto.master.d
必须具有*.autofs
后缀才能工作。您的情况 2) 基本上
autofs
与您当前配置的经典样式完全一样。使用您当前的配置,该
/home/me/
目录将成为一个autofs 映射挂载点:一个特殊的虚拟目录,当有人试图访问它时它会感应到。如果您尝试列出 autofs 挂载点的内容,它会将映射的内容列为子目录(在您的情况下,只是nas
子目录),并且当您实际尝试访问这些子目录时,autofs
将自动在允许访问发生之前将它们安装为所需的 NFS 共享,并且可以在不再使用每个共享时自动卸载它。间接映射(如您当前的配置)实际上是为像
/home/
autofs 映射安装点这样的情况设计的:用户主目录将是间接映射中的单个 NFS 共享,可以在用户登录和注销时安装和卸载。由于对间接映射的更新会立即生效,因此无需重新启动服务即可创建新用户并删除旧用户autofs
。如果要挂载 NFS 共享而没有中间目录,可以通过在以下位置定义直接映射来实现
auto.master.d/
:然后将内容更改
/etc/auto.me.nfs
为:最后重新启动 autofs 服务:
mount nas:/data/directory /home/me/nas
这应该在您访问时准确复制命令的效果/home/me/nas
,并允许在没有进程访问它时卸载它。但是,与间接映射不同,对直接映射配置的任何更改都需要重新启动 autofs 服务。systemd 的替代解决方案
但是,使用
systemd
,有另一种方法可以设置单个自动挂载目录,甚至不需要单独的autofs
服务。只需像这样写一个条目/etc/fstab
:要立即激活此条目,您需要两个命令:
否则,它将在下次重新启动时自动激活。
有关更多详细信息和配置选项,请阅读
man systemd.mount
。