RHEL 8.3 autofs 未挂载 NFS 目录

RHEL 8.3 autofs 未挂载 NFS 目录

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,对吗?将会发生以下两种情况之一:

  1. 没有什么。该目录/home/me/nas包含所有本地内容,并且df -h不显示安装到该位置的任何内容。
  2. 我的主目录将仅包含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

相关内容