多年来,我一直对 autofs 感到困惑。我以为我的存储库中的 autofs 版本存在错误。不幸的是,即使经过了几次系统和发行版升级,涵盖了几个主要内核和 autofs 版本,我仍然遇到以下意外行为。
首先,让我们手动并成功挂载我的 NFS 共享:
$ mount sarabi:/export/public_html /tmp/mnt
$ ls -al /tmp/mnt
drwxr-sr-x+ 3 root www-data 4096 Apr 21 19:18 .
drwxrwxrwt 10 root root 4096 Apr 22 15:39 ..
drwxr-s---+ 2 markus www-data 4096 Apr 21 19:18 markus
检查我的共享是否有效后,我们将尝试通过 autofs 使其自动化。
$ cat /etc/auto.master
+dir:/etc/auto.master.d
+auto.master
/mnt/ /etc/auto.mnt --timeout=1800 --ghost
$ cat /etc/auto.mnt
public_html sarabi:/export/public_html
$ ls -al /mnt # as expected
drwxr-xr-x 3 root root 0 Apr 22 15:48 .
drwxr-xr-x 22 root root 4096 Apr 22 14:27 ..
dr-xr-xr-x 2 root root 0 Apr 22 15:48 public_html
$ ls -al /mnt/public_html # unexpected
ls: cannot access '/mnt/public_html/': Too many levels of symbolic links.
$ ls -al /mnt # Why is public_html mounted into /mnt?!?
drwxr-sr-x+ 3 root www-data 4096 Apr 21 19:18 .
drwxr-xr-x 22 root root 4096 Apr 22 14:27 ..
drwxr-s---+ 2 markus www-data 4096 Apr 21 19:18 markus
为什么 autofs 直接挂载会把间接挂载public_htlm
改成/mnt
?!?
答案1
经过这么多年,我终于解决了这个问题。问题只是/
挂载点的冗余。因此,工作主配置文件必须如下所示:
$ cat /etc/auto.master
+dir:/etc/auto.master.d
+auto.master
/mnt /etc/auto.mnt --timeout=1800 --ghost