フォーマットせずにext4ファイルシステムの不良セクタを無視しますか?

フォーマットせずにext4ファイルシステムの不良セクタを無視しますか?

UDiskマイディスクに評価を表示

Disk is OK, 19 bad sectors (24° C / 75° F)

この数は1年間同じままで、ディスクにエラーはありませんが、不良セクタが原因でシステムがクラッシュしているようです。私のExt4ファイルシステムはフォーマットせずにそれを無視できますか?

答え1

はい、ext4ファイルシステムはフォーマットせずに無視できます。

ただし、非常に古いハードドライブではない限り、ハードドライブは次の書き込み時にオペレーティングシステムに透過的に不良セクタを「スペア」セクタに自動的に再割り当てできます。

したがって、正しいアプローチは、不良ブロックのリストを取得し、必要に応じて各ブロックを何度も読み取ろうとし、書き換えることです(または読み取れない場合は0に設定します。この場合、ファイルを識別してどこかから回復するできないか確認したい)たとえば、これを行うことができます(ただし、Enterキーを押す前にすべてをもう一度確認してください。愚かなことをし、ハードドライブまたはパーティションに直接書き込むのはdd簡単です)。dd

また、これを使用してハードドライブのSMARTデータを確認することもできますsmartctl

答え2

fsck.ext2このオプションを使用して実行できます-c。このオプションは、実行してbadblocks読み取れないブロックを含む見えないファイルを作成し、両方のファイルが同じブロックを共有しないようにすることができます。これらのブロックのいずれかが他のファイルで使用される場合、これは競合としてマークされ、ブロックのコピーやファイルの削除などのさまざまな回復オプションが提供されます。

-aこれらのリカバリには破壊的な操作が含まれるため、auto()の実行中は実行できません。結合し-c-aファイルシステムチェックが失敗する可能性があり、その実行で不良ブロックinodeが正しく構築されているかどうかはわかりません(スキャンを繰り返すことなく対話型リカバリを実行できるはずです)。

これにより、ブロックが割り当てられたとマークされ、使用されなくなります。

関連情報