次のような一連のCIFSマウントに問題があります。
//192.168.10.2/remote-share /home/windows-shared/remote-share cifs defaults,user=xxx,password=xxx,uid=603,gid=603 0 0
この問題はしばらくすると発生します。通常は、ユーザーが朝にマシンを起動し、共有がリモートで動作しなくなった1日後です。
したがって、ls
を実行しようとすると、次のようになります。
ls: cannot access /home/windows-shared/remote-share: Host is down
dmesg
には何も関係ありません。これの問題は、システムのこの部分へのすべての読み取り呼び出しがハングするだけなので、解決策として、無期限にハングするのではなく、より速いエラーが発生することです。
mount.cifs
のmanページを少し読んだ後、デフォルトではすべてのマウントがsoft
であり、最終的にタイムアウトになることを示しています。問題は、タイムアウトするまでに時間がかかりすぎることです。
更新:
これらのパラメーターをmountコマンドに追加しても、効果はありませんでした。
soft,timeo=300,retrans=3
AutoFSを強くお勧めします。
これにより、ネットワーク共有がバックグラウンドで動的にマウントおよびマウント解除され、すべてユーザーに透過的です。切り替えを行うまで、モバイルデバイスのアンマウントと再マウントに問題がありました。
残念ながら、autofsの設定を過度に複雑にするガイドが多すぎます。あなたがUbuntuボックスを使用していると仮定して、それを設定する簡単な手順を次に示します。
ここにいくつかの非常に簡単な指示があります:
Sudo apt-get install autofs -y
/etc/auto.master
のすべてを削除し、次のものに置き換えます:/- /etc/auto.cifs --timeout=20 --ghost
/mnt/LOCAL/MOUNT/PATH -fstype=cifs,rw,noperm,credentials=/etc/auto.credentials ://SERVER/MOUNT
/etc/auto.credentials
に、次のコンテンツを追加します:username=USERNAME password=PASSWORD
Sudo service autofs restart
。それでおしまい。
ほとんどの場合、遅延マウント解除を実行することで、少なくともハングしているマウントポイントを削除できます:umount -l //server/share
。多分あなたはそれをサスペンドフックに入れることができます(私が理解しているように、あなたのマシンは夜間にサスペンドされ、数日間実行されますか?)