![“ls” 显示已挂载的 NFS 文件夹中没有文件,但“cd”可以工作](https://linux22.com/image/1388602/%E2%80%9Cls%E2%80%9D%20%E6%98%BE%E7%A4%BA%E5%B7%B2%E6%8C%82%E8%BD%BD%E7%9A%84%20NFS%20%E6%96%87%E4%BB%B6%E5%A4%B9%E4%B8%AD%E6%B2%A1%E6%9C%89%E6%96%87%E4%BB%B6%EF%BC%8C%E4%BD%86%E2%80%9Ccd%E2%80%9D%E5%8F%AF%E4%BB%A5%E5%B7%A5%E4%BD%9C.png)
在 Linux 客户端上安装了 NFS 共享/vol/mynfs
。它不显示任何文件夹,ls
并且 bash 补全也不起作用/vol/mynfs
。但更改到子目录后,所有文件都可见。
$ ls /vol/mynfs
total 0
$ cd /vol/mynfs/test
$ ls # shows all files as expected now.
为什么文件首先是不可见的,我怎样才能使它们始终可见?
答案1
我假设您的 NFS 共享是自动安装的,是吗?
在实际挂载共享之前,/vol/mynfs
它只是一个空目录,因此ls
显示为空目录。移动到该目录会强制挂载实际发生,因此之后ls
会显示现在已挂载目录的内容。
只要共享确实已挂载,文件就可以列出。如果随后卸载共享(手动或自动,在不活动超时后),目录将再次显示为空。
如果由于某种原因您需要这样做,则类似操作(cd /vol/mynfs; ls)
将强制安装并执行。ls
答案2
答案3
我也审理过这个案件。
解决方案 1
就我而言,我正在使用 QNAP NAS 服务器。
我的 NAS 共享文件夹名称是“mynfs”
ssh 到 QNAP NAS 服务器并 chmod 750 mynfs
chmod 750 /share/NFSv=4/mynfs
在 NFS 服务器端 chmod 设置之后,我的客户端 nfs 现在可以显示所有文件和目录。
解决方案 2
此解决方案是修改客户端 /etc/fstab。下面的示例,10.0.0.254 是我的 QNAP NAS 服务器。
10.0.0.254:/mynfs /vol/mynfs nfs defaults 0 0
修改为
10.0.0.254:/mynfs /vol/mynfs nfs relatime,vers=4.1,rsize=32768,wsize=32768,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,local_lock=none 0 0
修改完/etc/fstab后,重新mount /vol/mynfs,文件就出现在/vol/mynfs中了。