スクリプトを使用して、CFカード(USBカードライターに接続)を自動化された方法でパーティション分割およびフォーマットします。メインプロセスの後、fsckでカードを再度チェックします。不良ブロックをチェックするために、「-c」スイッチも試しましたが、常に戻り値!= 0が表示され、「ファイルシステムが変更されました」というメッセージが表示されます(以下を参照)。まったく同じドライブを数回チェックすると、同じ結果が得られます...
A)ファイルシステムがまったく変更されている理由とb)エラー(不良ブロックなど)の場合だけでなく、チェックするたびにこれが発生するように見える理由を誰かが知っていますか?
出力は次のとおりです。
linux-box# fsck.ext3 -c /dev/sdx1
e2fsck 1.40.2 (12-Jul-2007)
Checking for bad blocks (read-only test): done
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
Volume (/dev/sdx1): ***** FILE SYSTEM WAS MODIFIED *****
Volume (/dev/sdx1): 5132/245760 files (1.2% non-contiguous), 178910/1959896 blocks
マンページを引用してください:
-c
このオプションにより、e2fsckはbadblocks(8)プログラムを実行して、ファイルシステムで不良なブロックを見つけ、不良ブロックiノードに追加して不良としてマークします。このオプションを2回指定すると、非破壊読み取り/書き込みテストを使用して不良ブロックスキャンが実行されます。
したがって、-c
オプションはファイルシステムに書き込み、fsck
は「エラーの修正」として解釈します。したがって、戻りコードは1
(「ファイルシステムのエラーが修正されました」)です。
...では、1
を指定すると、なぜ-n
が返されるのでしょうか。これにより、ファイルシステムは読み取り専用で開かれ、変更は行われません。
まあ、マンページをさらに読むと、その答えも明らかになります。
-nファイルシステムを読み取り専用で開き、すべての質問に「いいえ」と答えると想定します。 e2fsckを非対話的に使用できるようにします。 (注:-c、-l、または-Lオプションが-に加えて指定されている場合-nオプションの場合、ファイルシステムは読み取り/書き込みで開かれ、不良ブロックリストを更新できるようになります。ただし、ファイルシステムに他の変更は加えられません。)
(言い換えれば、-n
は嘘です!)
この回答は完全に fsck.ext3
のマンページ によってもたらされました。
詳細情報を取得するために、-vをfsckに切り替えてみましたか?また、badblockを単独で実行して、その出力を調べることもできます。
ほとんどの場合、ファイルシステムの「ラベル」領域への書き込みがありました。最後にfsckした日付/時刻と、ファイルシステムラベルの最後のマウントカウントフィールド以降の回数はどうですか?
Tune2fsパラメーターを見ると、このタイプの書き込みは、ext3ファイルシステムの自動完全fsckサポートの-cおよび-iパラメーターをサポートします。