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
它应该 mount nas:/data/directory
-> /home/me/nas
,对吗?将会发生以下两种情况之一:
- 没有什么。该目录
/home/me/nas
包含所有本地内容,并且df -h
不显示安装到该位置的任何内容。 - 我的主目录将仅包含
nas
.它显示在 df -h 中并且远程文件是可访问的。然而,其他一切都消失了。 onls -l
显示/home/
我的主目录拥有者root.root
命令:
mount nas:/data/directory /home/me/nas
工作得很好,继承了 NFS 目录的所有权和权限。我缺少什么?是否有日志可以查看 autofs 正在尝试执行的操作?
答案1
经典汽车
情况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/
:
rm /etc/auto.master.d/mount.nfs
echo "/- /etc/auto.me.nfs" >/etc/auto.master.d/mount.autofs
然后将内容更改/etc/auto.me.nfs
为:
/home/me/nas -fstype=nfs4 nas:/data/directory
最后重新启动 autofs 服务:
systemctl restart autofs
mount nas:/data/directory /home/me/nas
每当您访问 时,这应该完全复制该命令的效果/home/me/nas
,并允许在没有进程访问它时卸载它。但与间接映射的情况不同,对直接映射配置的任何更改都需要重新启动 autofs 服务。
使用 systemd 的替代解决方案
但是,使用systemd
,还有另一种方法可以设置单个自动安装目录,甚至不需要单独的autofs
服务。只需/etc/fstab
像这样写一个条目:
nas:/data/directory /home/me/nas nfs nfsvers=4,nofail,x-systemd.automount 0 0
要立即激活此条目,您需要两个命令:
systemctl daemon-reload #triggers systemd-fstab-generator to re-make *.mount and *.automount units
systemctl start home-me-nas.automount #starts the newly created automount unit
否则,它将在下次重新启动时自动激活。
有关更多详细信息和配置选项,请阅读man systemd.mount
。