CIFS 接続を強制的にアンマウントするにはどうすればよいですか
質問
Linux マシンに CIFS 共有をマウントしています。CIFS サーバーがダウンしているか、インターネット接続がダウンしているため、CIFS マウントにアクセスするものはタイムアウトするまでに数分かかり、待っている間は強制終了できなくなります。CIFS マウント内を指すシンボリックリンクがあり、ls はそれをたどって色を決定しようとするため、ホーム ディレクトリで ls を実行することさえできません。アンマウントしようとすると (-fl を指定した場合でも)、ls と同じようにアンマウント プロセスがハングします。sudo kill -9 でもそれを殺すことはできません。カーネルを強制的にアンマウントするにはどうすればよいですか?
解決
私は遅延アンマウントを使用します。 umount -l
(それは小文字です L
)
怠惰なアンマウント。ファイルシステムの階層からファイルシステムを取り外し、今すぐ忙しくないとすぐにファイルシステムへのすべての参照をクリーンアップします。(カーネル2.4.11以降が必要です。)
他のヒント
umount -a -t cifs -l
CentOS 6.3 では私にとって魅力的に機能しました。サーバーを再起動する手間が省けました。
RHEL 6 では、これは機能しました。
umount -f -a -t cifs -l
本当の解決策が見つかるまで、この問題を一日抱えていました。ハングした SMB 共有を強制的にアンマウントしようとするのではなく、「ソフト」オプションを使用して共有をマウントします。プロセスが使用できない共有に接続しようとすると、一定時間が経過すると接続を停止します。
ソフト マウントをソフトにします。数秒後にファイル システム呼び出しが失敗します。
mount -t smbfs -o soft //username@server/share /users/username/smb/share
stat /users/username/smb/share/file
stat: /users/username/smb/share/file: stat: Operation timed out
あなたの質問に対する本当の答えではないかもしれませんが、それは問題の解決策です
これは私にとってはうまくいきます(Ubuntu 13.10デスクトップからUbuntu 14.04サーバーへ):-
sudo umount -f /mnt/my_share
搭載
sudo mount -t cifs -o username=me,password=mine //192.168.0.111/serv_share /mnt/my_share
ここで、serv_share は、smb.conf ファイル内で設定およびポイントされているものです。
umount -f /mnt/share を試してください。NFS では問題なく動作しますが、cifs では試したことはありません。
また、autofs を見てください。autofs はアクセスされたときのみ共有をマウントし、その後はアンマウントします。
良いチュートリアルがあります www.howtoforge.net
davfs に関しても同様の問題がありました。のマニュアルページでは、 umount.davfs
, 、私が発見したのは、 -f -l -n -r -v
オプションは無視されます umount.davfs
. 。davfs マウントを強制的にアンマウントするには、次のようにする必要がありました。 umount -i -f -l /media/davmount
.
アンマウントには -f オプションがあり、試してみることができます。
umount -f /mnt/fileshare
マウントに「-t cifs」オプションを指定していますか?また、マウントに「ハード」オプションを指定していないことを確認してください。
こちらも検討してみてはいかがでしょうか ヒューズMB, 、ファイルシステムはユーザー空間で実行されるため、他のプロセスと同じように強制終了できます。
umount -f -t cifs -l /mnt &
気をつけてください &
, 、 させて umount
バックグラウンドで実行。umount
最初にファイルシステムをデタッチするため、何も見つかりません /mnt
. 。走れば df
コマンドを実行すると、 umount /mnt
強制的に。
RHEL 6 でもこれはうまくいきました。
umount -f -a -t cifs -l FOLDER_NAME
遅延アンマウントが自動的に機能します。
umount -l <mount path>