NFS マウントされたディレクトリの強制アンマウント [クローズド]
質問
Linux マシン上の NFS マウントされたディレクトリがハングしました。強制的にアンマウントしようとしましたが、うまくいかないようです。
$ umount -f /mnt/data
$ umount2: Device or resource busy
$ umount: /mnt/data: device is busy
「」と入力するとmount
"、ディレクトリはもうマウントされていないようですが、マウントするとハングします"ls /mnt/data
" そしてマウントポイントを削除しようとすると、次のメッセージが表示されます。
$ rmdir /mnt/data
rmdir: /mnt/data: Device or resource busy
マシンを再起動する以外に何かできることはありますか?
解決
遅延アンマウントを試してみるとよいでしょう。
umount -l
他のヒント
NFS サーバーが失われ、オンラインに戻すことができない場合、私が使用する 1 つの方法は、NFS サーバーの IP (この例では 192.0.2.55) を持つインターフェースにエイリアスを追加することです。
Linux
そのためのコマンドは大まかに次のようなものです。
ifconfig eth0:fakenfs 192.0.2.55 netmask 255.255.255.255
ここで、192.0.2.55 は、なくなった NFS サーバーの IP です。これで、アドレスに ping を送信できるようになり、ファイル システムをアンマウントできるようになります (unmount -f を使用します)。次に、エイリアス化されたインターフェイスを破棄して、古い NFS サーバーへのトラフィックが自分自身にルーティングされないようにする必要があります。
ifconfig eth0:fakenfs down
FreeBSD および類似のオペレーティング システム
コマンドは次のようになります。
ifconfig em0 alias 192.0.2.55 netmask 255.255.255.255
そしてそれを削除するには:
ifconfig em0 delete 192.0.2.55
詳細については、man ifconfig(8) を参照してください。
走ってみる
lsof | grep /mnt/data
これにより、アンマウントを妨げる /mnt/data にアクセスしているプロセスがリストされるはずです。
私は同じ問題を抱えていましたが、どちらもありませんでした umount /path -f
、 どちらでもない umount.nfs /path -f
、 どちらでもない fuser -km /path
、作品
ついに簡単な解決策を見つけました >.<
sudo /etc/init.d/nfs-common restart
, 、それでは簡単なことをやってみましょう umount
;-)
NFS サーバーが消えました。
理想的には、NFS サーバーが復旧することが最善の策です。
そうでない場合は、「umount -f」でうまくいくはずです。常にうまくいくわけではありませんが、うまくいくこともよくあります。
どのプロセスがNFSファイルシステムを使用しているかを知っている場合、それらのプロセスを殺すことを試みることができます。
最後に、再起動する必要があると思います。
また、NFS ドライブをソフトマウントしないでください。ハードマウントを使用して、彼らが働いたことを保証します。書き込みを行う場合はこれが必要です。
ここでは有効な答えが見つかりませんでした。ただし、Linux では「umount.nfs4 /volume -f」を実行すると、確実にアンマウントされます。