这是我的第一个 nfs / autofs 配置,所以我可能配置错了。当我导航到添加到 /etc/auto.master 的目录时,我看不到任何挂载点,但是当我使用预期挂载点的完整路径发出 cd 时,结果显示我可以访问它。我认为,下面的输出是不言自明的:
user@user-desktop:~/mnt/shares/autofs$ ls
user@user-desktop:~/mnt/shares/autofs$ ls ./backup_tmp
lost+found test.file
这就是自动主机管理工具文件看起来如下(在接收方机器上)。前两行是默认的,所以我不确定是否应该触碰它们:
+dir:/etc/auto.master.d
+auto.master
/home/user/mnt/shares/autofs /etc/auto.misc --timeout=20
这就是/etc/auto.misc看起来像(第一行默认出现):
cd -fstype=iso9660,ro,nosuid,nodev :/dev/cdrom
data_archive -fstype=nfs4 192.168.1.140:/mnt/data_archive
data_file-resources -fstype=nfs 192.168.1.140:/mnt/data_file-resources
backup_tmp -fstype=nfs 192.168.1.140:/mnt/backup_tmp
有人能帮我调试这个问题吗?
答案1
这就是 autofs 的工作方式。autofs 目录在首次访问时会被挂载(这就是名称中带有“auto”的原因)。当您执行ls
父目录的命令时,没有系统调用会访问实际的挂载点路径,因此它们不可见。当您明确访问挂载点路径时,它会被挂载。尝试ls
再次执行父目录的命令,您将看到挂载点已出现。在挂载的目录 20 秒内未被任何进程使用后(这是您在配置文件中设置的超时时间),它将再次被卸载并且不再可见。
答案2
这是设计使然,但 autofs 提供了改变这种行为的方法。
您可以使用browse
仅适用于 autofs 映射中的特定条目的选项,或者browse_mode
使用系统范围的选项。
选项1:browse
在地图中添加选项/etc/auto.master
:
/home/user/mnt/shares/autofs /etc/auto.misc --timeout=20 browse
从man auto.master
:
[否]浏览:这是一个 autofs 特定的选项,它是一个伪挂载选项,因此没有前导破折号。使用浏览选项会预先创建间接挂载映射的挂载点目录,因此无需挂载即可在目录列表中看到映射键。如果间接映射很大,使用此选项可能会导致性能问题,因此应谨慎使用。内部程序默认为启用间接挂载的浏览模式,但由于潜在的性能问题,默认安装配置会通过将 BROWSE_MODE 设置为“no”来覆盖此设置。该选项与已弃用的 --ghost 选项作用相同,但浏览选项是首选,因为其他 autofs 实现也使用该选项。
选项 2:browse_mode
改变中的值/etc/autofs.conf
。
从man autofs.conf
:
浏览模式:默认情况下地图是可浏览的(程序默认“是”)。
这些手册页摘录来自 Ubuntu 20.04,因此您的系统的 autofs 版本在配置文件位置或默认配置上可能略有不同。