Cifs从linux挂载子目录

Cifs从linux挂载子目录

我试图从同一共享名挂载两个子目录,但无法使其工作。

# Mount the two different subfolders:
# $server and $share are the same - the subfolder differs:
$ subfolderA=a/b/c
$ subfolderB=x/y/z
$ mount -t cifs //$server/$share/$subfolderA /mnt/dirA
$ mount -t cifs //$server/$share/$subfolderB /mnt/dirB

# Traverse the directories - I see the same file in both directories (should only be be in dirA)
$ find /mnt/dir[AB] -name fda.txt -ls
707409139 1024 -rwxr-xr-x   1 root     root           15 May 28 08:50 /mnt/dirA/fda.txt
707409139 1024 -rwxr-xr-x   1 root     root           15 May 28 08:50 /mnt/dirB/fda.txt

# Mount in opposite order:
$ umount /mnt/dirA
$ umount /mnt/dirB
$ mount -t cifs //$server/$share/$subfolderB /mnt/dirB
$ mount -t cifs //$server/$share/$subfolderA /mnt/dirA

# Traverse the directories - I do not see the file fda.txt at all
$ find /mnt/dir[AB] -name fda.txt -ls
<nothing>

我已经使用 smbclient 验证了对不同子文件夹的访问权限,它给了我预期的结果。

之所以要有两个单独的挂载点而不是一个,是因为我无法访问共享本身,而只能访问子文件夹。

答案1

为了深入理解问题,尝试使用--verbose选项挂载,即

mount -t cifs //$server/$share/$subfolderB /mnt/dirB --verbose

问题的可能原因可能是错误的 inode 编号或缓存。作为 inode 编号问题的解决方法,请尝试以下选项(其中之一):

--serverino
--noserverino

还可以尝试不同的缓存方法(其中之一):

--cache=none
--cache=strict
--cache=loose

挂载.cifs(8)此外。

相关内容