読み取れない保留セクタのマッピングを解除するには、ディスクをどうすればよいですか?

読み取れない保留セクタのマッピングを解除するには、ディスクをどうすればよいですか?

smartdによると、私のディスクに読み込めない保留セクタがいくつかあります。ディスクを再マップし、smartdが文句を言わないようにする最も簡単な方法は何ですか?

今日は、時間ごとに次の2つのメッセージを受け取ります。

9月10日 23:15:35 hyton smartd[3353]: デバイス: /dev/sdc, 現在読めない(保留中)セクタ 1個

システムは、Ubuntu Linux 9.10(jaunty)を実行するx86システムです。ディスクはLVMグループの一部です。 smartctlがディスクを識別する方法は次のとおりです。

モデルシリーズ: Western Digital Caviar 第2世代シリアルATAシリーズ
機器モデル:WDC WD5000AAKS-00TMA0
所蔵番号 : WD-WCAPW4207483
ファームウェアバージョン:12.01C01
ユーザー容量:500,107,862,016バイト

ベストアンサー1

保留中の読み取り不可能なセクターは、読み取りエラーを返し、ドライブが可能な最初の機会に再マップするようにマークしたセクターです。ただし、次の2つのいずれかが発生しない限り、再マップすることはできません。

  1. そのセクタを正常に読み直しました。
  2. そのセクタを上書きしました。

それまで、業界はまだ空中に浮かんでいます。したがって、この問題を処理するには2つの対応する方法があります。

  1. 成功するまで、業界をもう一度読んでください。
  2. 新しいデータでセクタを上書きする

明らかに(1)は非破壊的なので、最初に試す必要があります。ただし、ドライブがひどく故障し始めた場合は、不良領域で読み続けるとより早く故障する可能性があることに注意してください。保留中のセクタやその他のエラーが多く、ドライブのデータが重要な場合は、サービスを中断して素晴らしいツールを使用することをお勧めします。救うできるだけ多くのデータを回復します。その後、ドライブを廃棄します。

問題のセクターに興味のないデータが含まれている場合、またはバックアップから復元できる場合は、そのセクターを上書きするのが最も迅速で簡単な解決策です。その後、ドライブの再割り当てと保留中の数を見て、そのセクタが処理されていることを確認できます。

ファイルシステムでこのセクタが何であるかを確認するには?に関する記事を見つけました。インテリジェントモニタリングツールウェブサイト、ここ、これはかなり技術的で、ext2/3/4およびreiserファイルシステムにのみ適用されます。

私の(Mac)ドライブの1つで使用するより簡単な方法は、システム上のすべてのfind / -xdev -type f -print0 | xargs -0 ...ファイルを読み取ることです。実行する前に保留中の数をメモしてください。セクタがファイル内にある場合は、ファイルを読み取るために使用されるツール(md5sumなど)からセクタパスを表示するエラーメッセージが表示されます。その後、ファイルが正常に読み込まれるまでファイルの再読み込みに集中できます。頻繁に使用されないファイルで、数回だけ読み直す必要がある場合は、通常これを行うことができます。エラーが消えたり、すべてのファイルを読み込んでエラーが発生しない場合は、保留回数が減っていることを確認してください。もしそうなら、問題は読んで解決されました。

複数回試行(20回など)してもファイルを正常に読み取れない場合は、ドライブがセクタを再割り当てできるようにファイルまたはファイル内のブロックを上書きする必要があります。パーティション以外のファイルにddrescueを使用すると、一時ファイルにコピーしてから再コピーして、1つのセクタのみを上書きできます。不良セクタは利用可能なリストに移動して見つけるのが難しい可能性があるため、この時点でファイルを削除するのは悪い考えです。完全に上書きするのも良くありません。これは、セクタが再び利用可能なリストに表示されるためです。既存のブロックを上書きする必要があります。オプションはこれを行う1つの方法ですnotruncdd

エラーが発生せず、保留数が減らない場合、そのセクタは使用可能リストにあるか、ファイルシステムインフラストラクチャ(たとえば、inodeテーブル)の一部である必要があります。利用可能なスペースをすべて埋め、保留中のcat /dev/zero >tempfile数を確認できます。失敗した場合は、利用可能なリストに問題があり、今は消えています。

そのセクタがインフラストラクチャにあると、より深刻な問題が発生し、ディレクトリツリーをナビゲートするとエラーが発生する可能性があります。この場合、唯一の合理的な解決策は、ドライブを再フォーマットし、必要に応じてオプションでddrescueを使用してデータを回復することです。

運転を見続けてください。産業再編成は素晴らしい炭鉱のカナリア、これはドライブエラーに関する事前警告を提供できます。早期に措置を取ると、後で災害的で非常に痛みを伴う地すべりを防ぐことができます。いくつかのセクターの再割り当てがドライブを廃棄する必要があることを意味するわけではありません。すべての最新ドライブには少し再割り当てが必要です。ただし、ドライブが非常に古くなっていない場合(1年未満)、新しい再割り当てを頻繁に(> 1/月)行う場合は、できるだけ早く交換することをお勧めします。

これを実証する実証的な証拠はありませんが、私の経験によると、生のddディスクfindや。ほとんど使用されていないファイルまたは頻繁に使用されないコンピュータにあります。セクタを頻繁に再度読み取ると、ドライブはセクタを完全に読み取ることができなくなるのを待たずに、そのセクタのマイナーな問題を最初に検出したときに再割り当てすることができるため、これも有益です。ホストが何らかの方法でセクタにアクセスしない限り(読み取りまたは書き込みまたはSMARTテストのいずれかを介して)、ドライブはセクタで何もできません。

毎晩、毎週ディスク全体を読むクローンの仕事のアイデアを試してみたいです。現在、私のコンピュータに2番目のハードドライブがあり、毎晩ここでプライマリディスクをバックアップする「貧しい人々のRAID」を使用しています。ある意味では、誤ってファイルを削除しても、バックアップディスクから昨日のバージョンをすぐにインポートできるため、これは実際にRAIDミラーリングよりも優れています。一方、ハードウェアRAIDコントローラは、ディスクの問題が発生したときに監視、報告、および回復するために、後で多くの優れた作業を実行すると考えています。現在のバックアップスクリプトは、rsync変更されていないデータのコピーを防ぐために使用されますが、すべてのセクタを再読み込みする必要がある場合は、すべてをコピーするか、毎週ディスク全体を読み取る別のスクリプトを持つことが最善です。

おすすめ記事