これに似た質問をいくつかのバリエーションで以前に見たことがありますが、まだ満足のいく答えを見つけることができていません。
ここに私が持っているものがあります:
- 頻繁にネットワークを切り替える、モバイル性の高いDebianラップトップ。
- 多くのCIFS共有が存在する自宅のFreeNASサーバー。
ここに私が欲しいものがあります:
- 家にいるときにCIFS共有ディレクトリにアクセスすると、CIFS共有が自動マウントされます。
- 他の場所にいるときにCIFS共有にアクセスすると、すぐにエラーが返されます(つまり、NASが存在しないことを確認する前に、ネットワークを5分間考えないでください)。
- マシンをサスペンドまたはハイバネートするときは、共有をきれいにアンマウントして、マシンが再びウェイクアップしたときにマウントが薄い空気を指さないようにします。共有を完全にマウント解除できない場合(プロセスがディレクトリを使用している場合)は、次のいずれかを実行します。
- サスペンド/ハイバネートを中止して、誰がマウントにキャンプしているのか教えてください。または
- とにかくアンマウントを強制し、サスペンド/ハイバネートを続行します。
- 追加のクレジット:ネットワーク接続が切断された場合(プラグを抜くか、WAPとの関連付けを失う場合)、共有をきれいにアンマウントしてください。
- 追加クレジット:この魔法は、使用中のネットワークマネージャーから独立している必要があります。
私が読んださまざまなオプションはどれも適切ではないようです。
autofs
信頼できるようですが、サスペンド/ハイバネートを意識していないようです。- の
_netdev
オプションは興味深いように見えますがmount
、/etc/fstab
NFS共有にのみ適用されるようです。 - まだ
gvfs
仕事に就けていませんが、頑張っていません。
これに取り組む方法について何か提案はありますか?
補遺:
これが私がこれまでにやったことの短いバージョンです。私はをインストールしてautofs
、自動マウントされたすべてのボリュームを強制的に期限切れにする小さなシェルスクリプトを作成しました。これは、ネットワークインターフェイスがダウンしたときに呼び出されます。
資格情報を外部ファイル(yuck)に保存して、CIFSサーバーのオートマウンターマップを作成しました。次に、次のシェルスクリプトを記述しました。
#!/bin/sh -e
# Expire everything in the automounter.
if [ -f /var/run/autofs.pid ]; then
kill -USR1 "$(cat /var/run/autofs.pid)"
fi
USR1シグナルを自動マウントデーモンに送信すると、未使用のマウントがすべて強制的に期限切れになります。次に、このスクリプトをに配置/etc/network/if-down.d/autofs
し、ソフトリンクをに配置しました/etc/network/if-post-down.d/autofs
。NetworkManagerは、接続が切断されると、後者のディレクトリにあるすべてのスクリプトを呼び出すため、自動マウントされたファイルシステムはすべてマウント解除する必要があります。
しかし、私はその手配にひどく満足していません。最初は、autofs
自動マウントされたボリュームを区別せず、USR1を受信すると、非ネットワークボリュームを含むすべての非アクティブボリュームをアンマウントします。
さらに、CIFSサーバーのログインパスワードはファイルに保存する必要があります。私はそれを求められることを望んでいます。
とにかく、それは私がこれまで一緒にくじいてきたものです。うまくいきますが、もっと良いものを使って喜んでいます...
sudo mount -t cifs ...
があります。対照的に、同じ共有をマウントすると、好ましい結果が得られます。もう少しいじってみますが、Gigoloが私が探しているものではないと思います。