謎の「デバイスまたはリソースがビジーです」というメッセージ

謎の「デバイスまたはリソースがビジーです」というメッセージ

次のコマンドを使用して、Linux 上で Windows 共有を正常にマウントしました。

mount -t cifs -o credentials=pat_to_windows_creds,uid=my_linux_login,gid=my_linux_login,vers=2.1 windows_share mount_point

('vers=2.1' は数週間前から存在していますが、何らかの理由で最新の samba バージョンでマウントできないためです)

Linux からファイルやディレクトリを作成したり削除したりすることは問題なくできます。しかし、ディレクトリを移動 (名前変更) しようとすると、奇妙な「リソースがビジーです」というエラーが発生します。次の例をご覧ください。

>mkdir foo
>mv foo FOO
mv: cannot move 'foo' to 'FOO/foo': Device or resource busy

Linux は、なぜ foo を移動したいディレクトリ FOO があると考えるのでしょうか? FOO ディレクトリはありません (確認しました)。名前を変更しようとする他のすべてのディレクトリで、まったく同じ問題が発生します。この問題は、マウントされた Windows 共有でこれを行う場合にのみ発生し、ネイティブ/ローカル ファイルでは発生しません。

答え1

解決しました!!! (ご不便をおかけし、お時間を無駄にして申し訳ありません)。

この問題は、宛先ディレクトリの名前が、1 つ以上の文字が大文字になっている点を除いてソース ディレクトリの名前と同じである場合にのみ発生します。

Windows は大文字と小文字を区別しないため、Windows 共有側ではこの移動は mv 'into itself' を意味するため、実行を拒否します。1 文字だけ変更する場合は正常に動作します。当然です!

関連情報