LinuxのCifsマウントサブディレクトリ

LinuxのCifsマウントサブディレクトリ

同じ共有名で2つのサブディレクトリをマウントしようとしても機能しません。

# 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つではなく2つの別々のマウントポイントを持つ理由は、共有自体にはアクセスできず、サブフォルダにのみアクセスできるためです。

答え1

問題を深く理解するには、--verboseオプションを使用してマウントしてみてください。

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

問題の考えられる原因は、無効なinode番号またはキャッシュである可能性があります。 inode 番号付けの問題の回避策として、次のいずれかのオプションを試してください。

--serverino
--noserverino

また、別のキャッシュ方法(次のいずれか)を試してみてください。

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

読むmount.cifs(8)また。

関連情報