Windowsには「ハードウェアを安全に削除する」オプションがあります。
ほとんど常に失敗し、ほとんどの場合、デバイスのプラグを抜いたという事実を無視して(完全ではありませんが)、デバイスを制御できます。
もしそうなら、Debian を使うときはいつ外付けハードドライブを取り外すのが「安全」なのでしょうか?
削除した後(Xfceは「取り出し」という用語を使用しているようですが、同じと思います)?それとも、どのプログラムがディスクを使用していない場合にのみ該当しますか?
答え1
外付けドライブをアンマウントすると、取り外しても「安全」になります。
プログラムがそれを使用しないと、Linuxカーネルがキャッシュに書き込まれるため安全ではない可能性があります。これは、プログラムがディスクに書き込むときにそのデータが物理的にディスクにない可能性がありますが、まだメモリにある可能性があることを意味します(プログラムがまたはfsync
使用しない限りfdatasync
)。 Linuxは大規模チャンクでディスク書き込みを実行してスループットを最適化するためにこれを行います。
ファイルシステムをマウント解除すると、ディスクへの書き込みは行われなくなります。また、sync
キャッシュされたすべてのデータがディスクにフラッシュされていることを確認するための呼び出しも実行します。
答え2
接続を切断する前に削除する必要があります。一部のインタフェースでは、同じことを行う「ポップアップ」という用語を使用します。
マウント解除/取り外さずに接続を切断した場合に発生するダメージは、使用されるファイルシステム、ハードウェア、およびキャッシュによって異なります。その効果は本質的に停電と同じです。つまり、ほとんどのファイルシステムはこの状況で回復するように設計されていますが、保証することはできません。通常、UNIXファミリのオペレーティングシステムに組み込まれているファイルシステムでは、ファイルシステムのチェックが必要です。したがって、Linuxで削除できる唯一の安全な時間は、削除/取り出しが完了した後です。
答え3
USB3経由でSeagate外付け2TB「拡張デスクトップハードドライブ」2個がインストールされています。 rsyncを使用してシステムをバックアップした後、同期とumount.cryptの後でも、ドライブはマウント解除後にかなり長い間ヘッドを移動し続けます。約30秒から1分程度(手をのせたときの感じによって異なる))。これは、外付けドライブの一部の内部キャッシュが原因である可能性があると思います。頭の動きがまったく感じられなくなるまでプラグを抜くのは安全ではありませんでした。
ドライブの書き込みキャッシュをオフにする必要があるようです。私のドライブは通常/dev/sdgなので、そのドライブを使用するときにrootとして次のコマンドを実行できます。
hdparm -W0 /dev/sdg
しかし、これが問題を解決していることを確認できませんでした。