我在 CentOS 5.1 中的 autofs 方面遇到了一个相当奇怪的问题。
本质上,我尝试使用自动挂载访问文件,但第一次尝试访问文件时找不到它。只有在后续尝试中,挂载才变得可访问,直到一段时间后由于不活动而自动卸载,然后循环再次开始。
下面是当我尝试列出该文件两次时发生的情况,两次之间只有一秒左右的延迟:
*_107> ls /net/netfiler/vol/Archive/build.xml
ls: /net/netfiler/vol/Archive/build.xml: No such file or directory
*_108> ls /net/netfiler/vol/Archive/build.xml
/net/netfiler/vol/Archive/build.xml
经过进一步调查,mount 报告称 netfiler:/vol/Archive 在第一次尝试之前未挂载,但在之后挂载,这使得第二次尝试成功。这几乎就像操作系统在尝试访问文件之前没有等待自动挂载完成其工作一样。
我的 /etc/auto.master 具有以下内容:
/net /etc/auto.net
虽然我也尝试过默认的:
/net -hosts
无济于事。
如果不是因为它破坏了我们的许多自动化脚本(因为它们无法在第一次尝试时找到文件),这不会是一个大问题。我从未在任何其他发行版中看到过这个问题,所以我希望这里有人有解决方案。
答案1
看起来 CentOS 5.1 的 vanilla 安装有一个已知的内核错误,导致了这个问题:
http://bugs.centos.org/view.php?id=2448
这个问题在不久前就被修复了,升级到最新的 5.1 内核也修复了这个问题。