回答:
から:
http://linux.die.net/man/8/fsck.ext3
「一般的に、実行しても安全ではないことに注意してe2fsck
マウントされたファイルシステム上で。唯一の例外はある-n
オプションが指定され、かつ-c
、-l
または-L
オプションが指定されていない。しかし、そうしても安全である場合でも、によって印刷結果がe2fsck
ありますファイルシステムがマウントされている場合は無効です。マウントされてe2fsck
いるファイルシステムをチェックするかどうかを尋ねられた場合、唯一の正しい答えは「いいえ」です。仕方。 "
基本的な問題は、ファイルシステムチェッカーが(通常)ファイルシステムの一部ではないことです。代わりに、カーネル内のファイルシステムコードと同じディスクを読み書きする別個のプログラムです。その結果、アクティブなファイルシステムでfsckを実行すると、同じデータ(ディスク)を読み取り(および潜在的に変更)する2つの異なるエンティティが存在しますが、それらは相互に調整されません。その結果、他の人が指摘したように、ほとんどのチェッカーは、実行中に他の誰もファイルシステムのメタデータを変更していないことを期待しています。カーネルファイルシステムがチェッカーが予期しない何かを変更すると、混乱したり、誤ったエラーを報告したりします。
「オンライン」で実行するように明示的に設計されたチェッカーを備えたファイルシステムがいくつかあります(つまり、ファイルシステムがアクティブな間)。FFS / UFSの新しいバージョンは、ファイルシステムの最新のスナップショット(読み取り専用、ポイントインタイム、コピーオンライトレプリカ)に対してfsckを実行することでこれを行います。割り当てビットマップの不一致などの問題を検出した場合、rawディスクに書き込むのではなく、システムコールを介して問題を修正します。これにより、アクティブなファイルシステムと調整できます。
NetAppのWAFLには、オンラインチェックツールもあります。おそらく他にもあります。
読み取り専用モードでfsckを使用していても、読み取り/書き込みマウントされたパーティションでfsckを実行するのはばかげています。ファイルシステムはfsckの下で変更され、fsckがファイルシステムからキャッシュするメモリ内データは無効になります(したがって、fsckには不整合が発生します)。読み取り専用でマウントされたファイルシステムでfsckを読み取り専用モードで実行し、有効な結果を得ることができます。読み取り専用でマウントされたファイルシステムでfsckを読み取り/書き込みモードで実行すると、実行中にfsckがファイルシステムに変更を加えると、カーネルはその下でファイルシステム構造が予期せずに変化するのを見ることになります。それも悪いでしょう。