我有一个Linux(树莓派)服务器:
$ uname -a
Linux hester 4.19.97-v7l+ #1294 SMP Thu Jan 30 13:21:14 GMT 2020 armv7l GNU/Linux
具有两个具有相同用户/组/权限的目录:
$ ls -ld /mnt/storage/gitea/ /mnt/storage/hester/
drwxr-xr-x 2 nobody nogroup 26 Mar 2 10:20 /mnt/storage/gitea/
drwxr-xr-x 3 nobody nogroup 21 Feb 21 11:26 /mnt/storage/hester/
这两个目录在导出文件中以相同的参数导出:
$ cat /etc/exports
/mnt/storage/hester 192.168.1.15(rw,sync,no_subtree_check)
/mnt/storage/gitea 192.168.1.15(rw,sync,no_subtree_check)
在另一台机器上(导出文件中提到的192.168.1.15),我成功安装了两者:
$ mount /mnt/storage/gitea/
$ echo $?
0
$ mount /mnt/storage/hester/
$ echo $?
0
但是现在发生了奇怪的事情:
$ ls -l /mnt/storage/
ls: cannot access '/mnt/storage/gitea': Stale file handle
total 0
d????????? ? ? ? ? ? gitea
drwxr-xr-x 3 nobody nogroup 21 Feb 21 11:26 hester
我真的不知道
我愿意接受进一步调查的建议或对我的疑惑的答案。预先感谢您提供任何有用的输入!
答案 0 :(得分:0)
我终于找到了解决方案,该解决方案是在导出中显式添加一个fsid
选项:
$ cat /etc/exports
/mnt/storage/hester 192.168.1.15(rw,sync,fsid=20,no_subtree_check)
/mnt/storage/gitea 192.168.1.15(rw,sync,fsid=21,no_subtree_check)
我不能完全确定为什么这样做。从手册页中可以看到“ NFS必须能够识别其导出的每个文件系统。通常,它将使用UUID作为文件系统(如果文件系统有这种东西)或持有该文件系统的设备的设备号(如果文件系统存储在设备上)。
这两个挂载点都在同一文件系统上,因此根据手册页,它们应该具有相同的fsid,但这会导致导出相同的目录,因此我认为这意味着每个 export 需要有一个单独的fsid。
另一个注意事项:/ mnt / storage是RAID3上的XFS文件系统,因此这也可能使NFS对设备的UUID感到困惑。