NFSマウントポイントにマウントされたときにsshfsを(きれいに)マウント解除するにはどうすればよいですか?


12

私の同僚は、/homeファイルサーバーで共有されているデスクトップコンピューターを使用しています。sshfsラップトップで正常に動作する別のSSHホストに特定のディレクトリをマウントするためのPerlスクリプトを開発しました。

彼のコンピューターでは、スクリプトsshfsは最後にマウントを解除できず、マウントポイントをクリーンなままにします。再起動する以外にマウントポイントを回復する方法が見つかりませんでした。いくつかのテストの後、私たちのセットアップの違いは、彼/homeがNFS上にいるということです。彼の/tmpそれは完璧に動作します。

マウント後、スクリプト操作中はすべて問題ありません。ただし、sshfsプロセスを強制終了すると、親プロセス(Perlスクリプト)が終了<defunc>するpsまでby としてリストされます。sshfsシェルでraw コマンドを実行すると、問題が引き続き発生します。

ls -dlマウントポイントの出力は次のようになります(覚えているように-シェル出力の実際のコピーは手元にありません):

? 1 ? ? 4096 Feb  9 15:37 file_archive/

(ほとんどの情報、少なくともすべての許可の詳細については疑問符のみ)

sshfsマウントは引き続き一覧表示されますmountが、として実行ている場合でもエラー許可が拒否され、マウント解除操作は失敗しますroot

Googleで検索しましたが、ネットワークファイルシステムを実行するためのsshfsとNFSの多くの比較が見つかりました。NFSディレクトリでsshfsを安全にマウント/アンマウントするにはどうすればよいですか?

回答:


35

次を実行して、sshfs共有をアンマウントできるはずです。

 fusermount -u /path/to/sshfs/share

私はこれを試しましたが、許可は拒否されました。もちろん、umountroot以外のユーザーとして実行する場合、普通の人は失敗しなければなりません。
ダニエルベーマー

ほとんどの場合、(どの方法でも)アンマウントできない理由は、彼のホームディレクトリがNFSからマウントされ、root_squashオプションでエクスポートされているためです。したがって、rootは彼のホームディレクトリに権限を持ちません。オフにすることもできますroot_squashが、他の場所にマウントする方がおそらく安全です。
JFlo

2
私は毎回、その忘れumountfusermount -uディレクトリがどこかで使用されるとき、doesntの仕事を。そのcdため、使用fusermount -uまたは使用する前にディレクトリから外しますlsof /my/local/mountpoint
eli

15

pkillを使用してプロセスを強制終了し、マウントされたフォルダーパスをアンマウントします。

 pkill -kill -f "sshfs" && umount /path/to/sshfs/share

時々、umountの代わりに「sudo umount -f」または「sudo umount -l」を実行する必要があります。
fchen

0
sudo diskutil umount force ~/mount/

このコマンドはOS Xで動作するようです。


6
答えを展開して、このコードの機能と問題への対処方法を説明できますか?原因不明のコードは推奨されません。ソリューションを教えていないからです。ありがとう。 レビューキューから
fixer1234

これはOS X用です。Linuxに対する質問です。
ダンカンXシンプソン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.