不良セクタがあるハードディスクへの対応

読めないものは読めない

※この記事は広告を含みます。

不良セクタのあるハードディスクは、放っておいても状態が良くなることはありません。
再起動しても、意味がありません。
データを読もうとしても読めないから不良セクタになっているわけで、
原因となっている不良セクタをどうにかしない限り、状況は変わりません。

不良セクタが原因でハードディスクの動作に問題が発生しているときは、
若干特殊な操作を行う必要があります。
ただし、動作不安定なハードディスクを対象に操作することになるので、
相応のリスクがあることは理解しておいてください。

ハードディスクに不良セクタがあっても、程度問題なので、
少数であれば実用上はほとんど問題がありません。
不良セクタが発生していることにユーザーが気づかないことも多いくらいです。

ただし、不良セクタの状況がひどくなると、ハードディスクにまともにアクセスできなくなります。
ユーザーが不良セクタに対処しなければならないのは、
すでにハードディスクのアクセスに問題が発生している場合
です。

不良セクタの確認

不良セクタにもいくつかの種類がありますが、
ハードディスクの読み込みに関して特に問題となるのは、
論理的な不良セクタではなく、物理的な不良セクタです。
というわけで、まず問題となる不良セクタが存在するかどうかを調べるには、
ハードディスクのSMART情報を確認します。

ここで不良セクタが確認でき、しかもデータの読み込みがままならないときは、
何らかの手を打つ必要があります。

不良セクタ - CrystalDiskInfo

特に注意すべきは「C5(197)」、つまり「代替処理保留中のセクタ数」(ペンディングセクタ数)です。
※かっこ内の数値は、16進値を10進表記したもの。
「C5(197)」の「生の値」が「0」でなければ、正常にデータを読み出せないセクタがあるということです。

「05」に関しても同様に重要ですが、
不良セクタは「C5(197)」を経て代替処理された後に、「05」としてカウントされるのが一般的です。
データを読み出せないセクタとして検出されたものは、「C5(197)」にカウントされます。
まずは、「C5(197)」の「生の値」を見ておくべきかと。

もちろん、「05」の「代替処理済のセクタ数」が異様に増えていても問題ですが、
このへん判定と属性値の取り扱いはファームウェア次第なので、適宜判断すべきと思います。
少なくとも、代替処理済みの不良セクタは、以後使われることはありませんので。

不良セクタが存在しても、とりあえずハードディスクの読み書きに重大な問題が生じていなければ、
特別急いで何かをしなければならないわけではありません。
何もしないよりは対処したほうがいい場合もありますが、緊急度、重要度共にそれほど高くはありません。

ただし、ハードディスクへのアクセスが不安定な場合は別です。
不良セクタのあるハードディスクへの対応は、緊急で、かつ重要な作業になります。

ディスクコピーを行う

最低限必要な作業は、これだけです。
その他の内容は、補助的なものといってもいいくらいです。

根本的には、不良セクタが正常なセクタに回復することはありません。
従って、最も優先度が高いのは、
不良セクタが発生したハードディスクから、正常なハードディスクへデータを移行すること
です。
その後、正常動作するハードディスクを対象に復旧作業を行うべきです。

さもないと、不良セクタが多数存在するハードディスクに対して復旧作業を行ったところで、
元が動作不安定なので、ユーザーの意図した通りの結果を得られない可能性が高いからです。

ところが、不良セクタが多数存在するハードディスクでは、データのコピーすらままなりません。
不良セクタの箇所で、データの読み出しに失敗するからです。
従って、不良セクタを意図的にスキップしてデータを転送する必要があります。

特に、不良セクタのあるハードディスクに特化したディスクコピーツールとして、
「ddrescue」があります。

ddrescue

「ddrescue」の使い方

不良セクタの代替処理を行う

ディスクコピーを行うには、同容量以上のハードディスクが必要になるため、
気軽にすぐ実行できるものではありません。
そこで二次的な手段として、不良セクタのあるハードディスクの状態を改善する方法を考えます。
ただし、ディスクコピーに比べてリスクは高いです。

不良セクタにおいてデータの読み出しに問題が発生するのは、
読めない不良セクタを読み続けるからです。
この場合、不良セクタのデータをあきらめ、不良セクタの代替処理を促進させると、
ハードディスクとしてはデータの転送が滞りなく行えるようになります
。

「HDAT2」を使って、読み出しエラーの発生するセクタに書き込み命令を送ることで、
セクタ代替処理を促進できます。

HDAT2

「HDAT2」による不良セクタの修復

ペンディングセクタを代替処理した後のハードディスクは、
一時的にでも、読み出しエラーが発生しにくい状態となります。
その間に、必要な復旧作業を試みるのは有効です。

ただし、致命的な状況を脱したからといって、継続使用するのはおすすめしません。
本質的には、ハードディスクの状態は変わっていないからです。

不良セクタを使わないようにする

不良セクタが少数で、手軽に対処しておきたい場合は、
「chkdsk」を実行するのが効果的です。
「chkdsk」によって不良セクタが検出されると、
不良セクタを含むクラスタは、以後ファイルシステム上使われなくなります。

ただし、「chkdsk」は万能ではありません。
ファイルシステムの機能で不良セクタに対処しようとするもので、
ハードディスクの不良セクタを直接操作するものではありません。
これまで書いてきたような、不良セクタを根本的にどうにかするものとは異なります。

状態の悪いハードディスクに対して「chkdsk」を実行すると、作業が完了しなくなる恐れがあります。
それでも「chkdsk」に触れるのは、不良セクタに対処する手段であることには違いなく、
正しく使用すれば、「chkdsk」が有効なケースは多いからです。

やってはいけないのは、必要なデータをバックアップすることなく、
不良セクタが多数存在するような状態の悪いハードディスクに対して、「chkdsk」をいきなり実行すること。
従って、ハードディスクの状態の確認は先に行っておくべきで、
素性のわからないものに「chkdsk」を実行するのは避けたほうがいいです。
ほとんどバクチです。

chkdsk

「chkdsk」と修復オプション

「chkdsk」の詳細は上記ページに任せるとして、不良セクタに関するオプションは2種類あります。
「/r」と「/b」です。

違いがわかりにくいので、ざっくりとだけ説明します。

/r ハードディスクの不良セクタがそのままの状態で、
「chkdsk」によって不良セクタを回避したい場合。
/b ハードディスクに存在していた不良セクタが正常なセクタに置き換わっているのに、
ファイルシステム上の不良セクタがそのまま残っているのを修正したい場合。

早い話が、「chkdsk」のみで不良セクタに対処したい場合は「/r」。
前述の方法等で不良セクタの状況が変わった時に使うのが「/b」。
というわけで、実際に使う機会が多いのは「/r」だと思います。

具体的には、コマンドプロンプト(Windows PowerShell)を管理者として実行し、

chkdsk f: /r

chkdsk (対象のドライブ) /r

と入力して「Enter」キー。

「/r」での修復に成功すれば、その後不良セクタの代替処理を行う必要はありません。
もうその領域は使われませんので。

不良セクタがあるハードディスクのデータ復旧

そもそも不良セクタが発生するのは、ハードディスクのヘッドに問題がある可能性が高いです。
ヘッドに異常がある状態でハードディスクを使い続けると、状況は悪化します。
データをコピーするにしろ修復するにしろ、ハードディスクのヘッドを酷使する作業だからです。
根本的には、ヘッドを交換しなければなりません。

データの重要度が高い場合は、ハードディスクに無理に手を加えることなく、
データ復旧業者に依頼したほうがいいと思います。
異常のある部品を交換した後、ハードディスクへのアクセスを試みます。
ファームウェアとあわせて修正することで、
読み出しに失敗していたセクタも読める可能性があります。
不良セクタのデータを読み出すには、この方法しかありません。

ハードディスクのデータ復旧作業 - デジタルデータリカバリー

データ復旧サービス デジタルデータリカバリー
当サイト取材記事 データ復旧料金の相場があいまいな理由