web-dev-qa-db-ja.com

不良セクタに立ち向かうためにデータをバックアップする方法は?

私はWindowsを使用しています。 1年前、私はD:ディスク(500 GB)をMacrium Reflectでバックアップしました(同様に、ファイルを独自の形式mrimgで保存しますDriveImageXML.xml)を外付けHDDに保存します。圧縮を選択したかどうかは覚えていません。 1年後、そのバックアップを開きたいと思ったとき、そのHDDの一部のセクター(そのイメージの後ろ)が破損していたため、機能しませんでした。そのため、バックアップファイル全体が読み取れなくなります。

二度と起こらないようにしたいと思います。 COPY-PASTE(最善の方法のようですが、約5時間かかります)の代わりにDディスク全体のバックアップを作成する方法はありますかその外部HDDでセクターが悪くなる場合でも、バックアップで利用可能なすべてのデータにアクセスでき、画像が読み取れなくなることはありませんか? imaged-backup(1つのファイルになります)は、読み取り不可能なファイルになった場合、安全ではないようです。

1
T.Todua

ハードドライブを監視することが最良のオプションです。

SMART monitoring。SMARTは、Self Monitoring and Repairing Toolの略です。特に、ECC(エラー訂正コード)が高いディスクは弱いため、交換する必要があります。セクターは最終的に失敗します。

SMART Attributes Data Structure revision number: 10
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x000f   114   100   006    Pre-fail  Always       -       61609160
  3 Spin_Up_Time            0x0003   093   092   000    Pre-fail  Always       -       0
  4 Start_Stop_Count        0x0032   100   100   020    Old_age   Always       -       195
  5 Reallocated_Sector_Ct   0x0033   100   100   010    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x000f   085   060   030    Pre-fail  Always       -       4648073590
  9 Power_On_Hours          0x0032   077   077   000    Old_age   Always       -       20551
 10 Spin_Retry_Count        0x0013   100   100   097    Pre-fail  Always       -       0
 12 Power_Cycle_Count       0x0032   100   100   020    Old_age   Always       -       32
183 Runtime_Bad_Block       0x0032   100   100   000    Old_age   Always       -       0
184 End-to-End_Error        0x0032   100   100   099    Old_age   Always       -       0
187 Reported_Uncorrect      0x0032   100   100   000    Old_age   Always       -       0
188 Command_Timeout         0x0032   100   099   000    Old_age   Always       -       6 6 12
189 High_Fly_Writes         0x003a   061   061   000    Old_age   Always       -       39
190 Airflow_Temperature_Cel 0x0022   061   045   045    Old_age   Always   In_the_past 39 (Min/Max 33/55)
191 G-Sense_Error_Rate      0x0032   100   100   000    Old_age   Always       -       0
192 Power-Off_Retract_Count 0x0032   100   100   000    Old_age   Always       -       0
193 Load_Cycle_Count        0x0032   039   039   000    Old_age   Always       -       122569
194 Temperature_Celsius     0x0022   039   055   000    Old_age   Always       -       39 (0 21 0 0 0)
195 Hardware_ECC_Recovered  0x001a   114   100   000    Old_age   Always       -       61609160
197 Current_Pending_Sector  0x0012   100   100   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0010   100   100   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x003e   200   200   000    Old_age   Always       -       0
240 Head_Flying_Hours       0x0000   100   253   000    Old_age   Offline      -       9421h+55m+42.115s
241 Total_LBAs_Written      0x0000   100   253   000    Old_age   Offline      -       36542577472
242 Total_LBAs_Read         0x0000   100   253   000    Old_age   Offline      -       2583422390857

ここに注意してください:195 Hardware_ECC_Recovered、ここでドライブはセクターを読み取り、ECCデータはセクターが間違っていることを示し、それを回復しました。 Raw_read_Error_RateとSeek_Error_Rateにも注意してください。一般的に、いくつ持っているかは重要ではありませんが、その数がどれだけ速く増加するかは重要です。ただし、悪いドライブでは、これらは簡単に数百万または数十億に達する可能性があります。ドライブがこれほど高くなった場合は、交換してください。 ECCリカバリを実行する必要があるたびに、ドライブの読み取り速度が遅くなり、数百万になると、ドライブは実際に遅れ始めます。

ハードドライブECCエラーからの引用! --Memofixのデータ復旧ブログ

ハードドライブがデータのセクターを読み取るとき、実際のデータの直後にある50バイトのECCコードも読み取ります。データが最初にセクターに書き込まれたとき、512バイトのセクターデータに対して高度なアルゴリズムが実行され、まったく同じデータを読み取ることによってのみ複製できる一意のECCコードが生成されました。セクターが後で読み取られると、ドライブはデータに対して同じアルゴリズムを実行し、以前に保存されたECCコードと比較することによってデータの検証を試みます。コードが一致しない場合、ディスクドライブはエラーコードを生成し、データの転送を防ぎます。ハードドライブは通常、ECCコードとの照合を試みるため、最大10回データの再読み取りを試みます。このプロセスにより、ドライブの速度が大幅に低下します。

ECCは、不良セクタを検出して修正できる複雑な数式です。

サーフェスの更新とは、セクターの小さなブロックでドライブを読み取り、それらのブロックを同じ内容で書き換えて、すべて問題がないことを確認することです。一部のソフトウェアでは、すべてのデータを反転し、ドライブに再読み取りしてから再度反転するなどのトリックを追加して、すべてのセクターが正常に機能していることを確認します。

Grc.comのSpinRiteのようなもので、数か月ごとに表面を更新します。

http://hdd.by のVictoriaというプログラムは、ディスクの表面のタイミングを示します。読み取るのに時間がかかるセクターが多いほど、最悪の事態になります。

Victoria
上:緑色のブロックが非常に多いため、ドライブが古くなっていることを示す明確な兆候が見られます。真新しいドライブは、ほぼ完全に最も明るい灰色の領域にあり、100の領域に数100があります(中程度の灰色)。

最後に、パリティファイル。 http://www.quickpar.org.uk/ 。これにより、特定のファイルの不良セクタを修復できる修復ファイルが生成されます。パリティデータの割合が高いほど、修復できるエラーは悪化します。ただし、数100の不良セクタを処理するために多くのデータを必要としないはずです。正確な比率はわかりませんが、ここにいる他の誰かがおそらく知っています。

options screen

ここで、保護するファイルを追加し、保護レベルを設定して(これらの目的には、2%で十分です)、createをクリックします。
main program

合計約75MBの結果のPARファイルは次のとおりです。
resulting files

ここでは、意図的に10000セクターを破棄しました(count = 10000)。bsはブロックサイズ512です。

dd conv=notrunc if=/dev/zero of="Windows 10 64  16299.15.iso" bs=512 count=10000 seek=1

わずか2%のPARデータで、ブロックあたり512バイトの不良ブロックを少なくとも10,000個回復できました。

パリティデータとは何ですか?

この記事では簡単に説明しますが、

https://www.dataclinic.co.uk/raid-parity-xor/

これは、非常に賢い人々がエラーを修正するために開発した公式でもあります。パリティプログラムが実行されると、これらの追加のリカバリビットが生成されます。 XORに基づいています。

QuickPARの画面キャプチャをいくつか含めましたが、WinRARにもこの機能があります。ここを参照してください:
WinRAR – Add file to archive
[オプション]で、回復データの割合を設定できます。不良セクタから保護するには、2%で十分です。 10,000の不良セクタがある場合は、ハードドライブをできるだけ早く交換する必要があります。

RAID 5/6は、1つまたは2つのディスク全体の障害から保護する必要があるため、この割合は桁違いに高くなります。

1
cybernard

ディスクの破損を防ぐことはできません。私が考えることができる唯一の保護は次のとおりです。

  • すべてのセクターを更新するには、ターゲットディスクを低速(高速ではない)形式でフォーマットします
  • ターゲットディスクのSMARTデータの弱点を確認します
  • 複数のバックアップを取る
1
harrymc