web-dev-qa-db-ja.com

アンマウントされているかどうかを心配せずにUSBドライブを取り外す方法は?

USBドライブを取り外して、ファイルが書き込まれていないことを確認するだけの場合もあります。

ファイルが確実に書き込まれるようにする唯一の方法は、デスクトップのUSBドライブを右クリックして「アンマウント」を選択することだと思いますが、忘れてしまうこともあります。

USBドライブにファイルが即座に書き込まれるようにするための最良の方法は何ですか?これにより、USBドライブのLEDライトの点滅が止まったらすぐにUSBドライブを取り外すことができます。

OS:CentOS 6

11
slm

これがGillesの答えです。ここに保存して、失われないようにします。

リムーバブルドライブでsyncマウントオプションを使用すると、すべての書き込みがすぐにディスクに書き込まれるため、まだ書き込まれていないファイルのデータが失われることはありません。それは悪い考えですが、あなたが求めていることを実行します。

syncは、データが失われないことを保証しないことに注意してください。リムーバブルドライブをマウント解除すると、ファイルが開かれているアプリケーションがなくなります。取り外す前にアンマウントしないと、手遅れになるまでデータを保存していないかどうかはわかりません。ファイルが開いている間にアンマウントすると、ファイルシステムレベル(OSがファイルを閉じるまでいくつかの操作をキューに入れた可能性があります)とアプリケーションレベル(アプリケーションがロックファイルを配置した場合など)の両方で破損の可能性も増加します。削除されます)。

さらに、syncはデバイスの存続期間にとって悪いsyncオプションを指定しないと、カーネルは書き込みを並べ替えて、バッチで書き込みます。 syncオプションを使用すると、カーネルはアプリケーションが要求した順序ですべてのセクターを書き込みます。セクターを再割り当てしない安価なフラッシュメディア(ほとんどの古いUSBスティックを意味し、それが最近のものにまだ当てはまるかどうかはわかりません)で、(V)FATのファイルアロケーションテーブルまたはジャーナルに繰り返し書き込み典型的な現代のファイルシステムでは スティックをかなり速く殺すことができます

したがって、syncマウントオプションの使用はお勧めしません。

FATファイルシステムでは、flushマウントオプションを使用できます。これはasync(デフォルト)とsyncの中間です。flushオプションを使用すると、カーネルはドライブがアイドルになるとすぐにすべての書き込みをフラッシュしますが、保持しません書き込みの順序(たとえば、FATへのすべての書き込みがマージされます)。

16
slm

患者:「医師、これを行うと痛い」
医師:「まあ、それをしないでください。」
たぶんマルクス兄弟かもしれませんが、もしそうなら他のヴォーデビリアンからそれを盗んだかもしれません

どちらの回答も問題ありませんが、質問をします。サムドライブを取り外す前に適切にアンマウントすることを思い出せない場合は、おそらくもっと覚えておくべきです。

一般に、問題には良い解決策がありません。オリジナルのMacintosh(1984年頃)には、適切なイジェクトボタンのない90mmフロッピードライブがありました。ディスクをアンマウントするか、ディスクが出ません。ソフトウェアがディスクの排出を拒否したときのオーバーライドを提供しましたが、ディスクを作動させるために特別なツール(ペーパークリップの曲がっていない)が必要でした。ペーパークリップが1mmの穴に詰まっていることに気づかなかったため、ペーパークリップはドンノルマネスクの「強制機能」を形成しました。

USBコネクタのメカニズムのため、サムドライブに同様の強制機能を考案することは困難です。つまり、マウントを解除せずに削除しないでください。また、安全ベルトなしで自動車に乗ることは賢明ではなく、これまでに試みられたほぼすべての強制機能は、所望の目的を達成することに失敗しました。

12
msw

通常、USBサムドライブなどの大容量ストレージデバイスは、mountコマンドを使用してマウントされます。それらは、このコマンドumountの補完を使用して明示的にアンマウントする必要があります(タイプミスではありません)。 USBデバイスが差し込まれた直後など、ハードウェアレベルでイベントを検出できるツールがあります。これらの「サービス」は、自動的にマウントを実行します。これは、GNOMEデスクトップを使用しているときに起こっていることで、通常、ファイルブラウザーNautilusにマウントされたUSBドライブが表示されます。

デバイスが書き込まれなくなった時期を知るのは少し難しいです。 UdevおよびDBUSメッセージを使用して独自のハンドラーを作成し、デバイスへの書き込みがいつ完了したかを確認して、明示的に「アンマウント」状態に保つ必要があります。

Linuxのさまざまなサブシステムへのより深い統合がなければ、これを行う他の方法はありません。また、現在のところ存在しないという私の知る限りです。

MAC OSX

私の推測では、OSXではsyncコマンドを実行し、デバイスを「マウント」したままにしています。これは危険なことと見なされますが、オペレーターにとっては便利です。

1
slm