USBドライブが取り外されている(マウント解除されていません)、それでもその中にあるファイルにアクセスできます。プログラムでこの状況をどのように検出できますか?

USBドライブが取り外されている(マウント解除されていません)、それでもその中にあるファイルにアクセスできます。プログラムでこの状況をどのように検出できますか?

私はcubieボード(Raspberry Piなどのシングルボードコンピュータ)でcubianというDebian派生製品を実行しています。

Linux Cubian 3.4.79-sun4i #1 PREEMPT Wed Feb 25 08:50:31 UTC 2015 armv7l GNU/Linux

USBドライブは/ mediaサブディレクトリに自動的にマウントされますudevil

これをキオスク(ユーザーが窓口システムにアクセスできないなど)で管理しようとするので、プログラム的に状況に対応する必要があります。最近のテスト中に、私のコードで/ mediaに複数のディレクトリがあることを示すエラーが発生しました。 SSH経由でログインしましたが、実際には2つのディレクトリがありました。私は自分に「そうですが、そのうちの1つは正しくマウント解除されていないドライブの古い残りの部分だけなので、ディレクトリは空になります。と思いました。これのために。」

驚くべきことに、ディレクトリは空ではなく、リストをインポートできるだけでなく、ファイルの内容を開いて読むこともできました。この問題同様の状況が説明される。

私はこれが私が近づいている一種のキャッシュだと思います。 プログラムでこの状況を検出する方法はありますか?

どのディレクトリが物理的にマウントされたドライブに対応しているかを知っているため、ディレクトリのクリーンアップについて心配することはありません。

そして残念ながら、これを再現する方法がわかりません。 udevilを殺して手動でインストールしようmountとすると、取り出してファイルが消えました。

これを再現するための信頼できる方法があれば、何かをテストすることができます(たとえば、コマンドが失敗したがtouch中断されないことを確認するなど)、便利な答えになります。

ベストアンサー1

これが発生する唯一の方法は、ドライブがマウント解除されたときにファイルに何かが記録された場合です。何もインストールされていない場合、Linuxシステムは/ mediaのフォルダを通常のファイルを含む通常のフォルダとして扱います。

Linuxでは、ディレクトリを通常のディレクトリとして使用するか、ディスクまたはネットワークドライブのマウントポイントとして一度に1つずつ使用することが完全に可能です。

編集する:

他の記事で説明したキャッシュ副作用は、$ sync削除する前にキャッシュを実行することで解決できます。彼らが説明するのは、アンインストール後にキャッシュをフラッシュすることであり、前に説明したように通常のフォルダにファイルを書き込む効果があります。

理由を説明せずに反対表を投げないでください。

おすすめ記事