私の項目は次のとおりです/etc/fstab
。
//fritz.box/fritz.nas /mnt/smb/fritz.nas cifs user,cache=loose,nohandlecache,username=name,workgroup=WORKGROUP,password=pwd,vers=3.0 0 0
インストールは完全に機能しますが、サーバーからローカルコンピュータにファイルをコピーしようとすると、次のエラーが発生します。
cp: cannot open 'file.JPG' for reading: Stale file handle
またはrsyncを使用している場合:
rsync: [sender] send_files failed to open "path/to/file.JPG": Stale file handle (116)
937.29K 100% 915.32MB/s 0:00:00 (xfr#1, to-chk=0/1)
sent 88 bytes received 35 bytes 246.00 bytes/sec
total size is 937.29K speedup is 7,803.09
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1330) [sender=v3.2.3]
smbバージョンを1に設定すると、エラーは消えます(既知のセキュリティ上の問題によりこれを回避したい)。
キャッシュを介していくつかの点を変更してみました。https://forums.unraid.net/topic/86707-cifs-smb-stale-file-handle/これが問題の原因であることを示唆していますが、機能しません。 (すでにcache=none
試しましたfstab
)
この問題の原因が何であるか(キャッシュではない可能性があります)、またはキャッシュをオフにしようとしたときに何が間違っているのかというアイデアはありますか?
編集:ファイルダウンロードテストsmbclient
(事前にSMBv1を無効にする)
答え1
質問が示すように、マウントは成功し、ファイルにsmbclient
アクセスできます。noserverino
インストールオプションを追加することをお勧めします。
noserverino
サーバーが各ファイルに対して一意のinode番号を生成できない状況を処理します。 CIFS / SMBでは、ファイルはほとんど常に名前でアクセス(開く)され、ファイルシステムは各ファイル(名前に加えて)の永続識別子を保持する必要はありません。
一部のサーバーでは、inode番号を0(誤って)で埋め、ファイルを区別することはできません。
したがって、noserverino
ターゲットが INODE サーバーではないため、INODE がクライアントによって生成されることをシステムに通知します。