回答:
まず、使用するソフトウェアについては、のddrescue
代わりにを使用してみてくださいdd
。
ddrescue
限られた数の再試行のみを行うスイッチがあります。また、ログファイルを使用できるため、どのブロックが不良であったかを記録します。後でより多くの再試行を実行したい場合は、同じログファイルを使用して(より多くの再試行のように)異なるオプションでddrescue
再度実行すると、必要なブロックのみが再試行されます。
使用例:
# ddrescue -n /dev/sda /dev/sdb rescue.log
# ddrescue -r1 /dev/sda /dev/sdb rescue.log
以下からのddrescue
情報ページ:
-n, --no-scrape
Skip the scraping phase. Avoids spending a lot of time
trying to rescue the most difficult parts of the file.
-r, --retry-passes=<n>
Exit after given number of retry passes. Defaults to 0.
-1 means infinity. Every bad sector is tried only once
in each pass. To retry bad sectors detected on a previous
run, you must specify a non-zero number of retry passes.
使用するためのいくつかの追加ソースはddrescue
次のとおりです。
info ddrescue
HDD自体に時間がかかりすぎる場合は、TLER(T ime L imited E rror R ecovery)またはCCTL(C ommand C ompletion T ime L imit)と呼ばれる機能を有効にしてみてください。すべてのHDDに搭載されているわけではありませんが、HDDコントローラー自体の時間を制限するために使用できます。ddrecue
もちろん、このアプローチはの使用と組み合わせることができます。
Linuxにはsmartctl
(smartmontools
パッケージ内に)というツールがあります。
現在の設定を確認するには(「無効」とは、時間を無制限にすることを意味します)。
# smartctl -l scterc /dev/sda
これを固定値に設定するには(この例では5.0秒。0に設定するとTLERが無効になります):
# smartctl -l scterc,50,50 /dev/sda
TLERのソース:http : //en.wikipedia.org/wiki/TLER
このソフトウェアを使用すると、他の方法では読み取り不可能なディスクから良い結果が得られました。
http://www.cgsecurity.org/wiki/TestDisk
この次は、しっかりした回復ツールでもあります。ファイルテーブルが壊れていたり、削除されていても、ファイルを取得できます。それはいまいましい優れた法医学ツールです。本当に整理されていない方法でダンプしますが、すべてのデータを移動できます。
ディスクをレスキューするための迅速かつ迅速なオプションとして、shスクリプトファイルを使用して、shでファイルを実行できます。これにはこの行が含まれています。繰り返すだけでsudo ddrescue
、sleep 3
あと数回です。スリープは、ドライブを数秒休止させるために使用されます。
#! /bin/sh -e
sudo ddrescue -d -r0 -e +0 -T 1s -n /dev/drivepartition file.img log.logfile
sleep 3
上記で使用したオプション:
-r0
:再試行なし-e +0
:最初のエラーで終了-T 1s
:1秒失敗して終了-d
:ダイレクトI / O-n
:削り取りなし-R
オプションの終了後-A
、一度使用すると、すべてのエラーサイズが反転して削除され、逆方向に再び開始されます。エラーを別の方法で読み取ることを意味します。
あなたのハードドライブのサイズとそれが持っている多くの不良ブロックに依存します。DD a 1 tera health hdを使用してバックアップするには、通常20分かかります。不良ブロックがあるため、今朝回復したばかりで、2回かかった。約30個の不良ブロックがあるため、複製(ディスクのバックアップ)で問題が発生しました。私が最初に行ったことは、通常のFilezillaを使用してファイルをバックアップし、すべての適切なデータをバックアップすることです。1つの大きなファイルが正しくコピーされていないことに気づきました(途中で停止して転送を再開します)。幸い、同じファイルの以前のバックアップがあります。ディスクを複製するには、次の手順を使用してディスク上の不良ブロックを見つける必要がありました。
最初に、fdisk -lを使用して、HD情報を特定する問題のあるディスクを見つけます。
2つ目は、ディスクが/ dev / sdbだとしたら、コマンドbadblocks -v / dev / sdbを実行する必要があり ます。これにより、ドライブ上のすべての不良ブロックがリストされます。幸いにもいくつかあります。不良ブロックが見つからない場合は、ドライブブロックに問題はなく、他の問題を解決する必要があります。私のブロックサイズは512なので、DDを実行するためにそのデフォルトの数を使用します
3番目の各ブロックは512サイズなので、bs = 512を設定します
いつものようにDDを定期的に実行するたびに、エラー後、データが破損して出力されます。そこで、https://www.gnu.org/software/coreutils/manual/html_node/dd-invocation.htmlページで説明されているようにパラメーターを使用して、「障害のあるディスク」の部分を検索します。
dd if=/dev/sdb of=/dev/sda bs=512 conv=noerror,sync iflag=fullblock
少し時間がかかりました。各不良ブロックは、障害のあるドライブを叩いているような音に遭遇しました。それはブロックごとにコピーします、そしてすべての私の悪いブロックを通して同じノイズを作りました。ノイズを発生させた回数は、別の不良ブロックが見つかり、表示エラーメッセージが表示されたためです。どのような「CONV = NOERROR、同期が」悪いが、一方で、NULsで読み取っ出ない、パッドにある「IFLAG = fullblock」略して向きを読み込みますが、最後まで自分のデータを同期して保持します。破損はまったくなく、障害のあるブロックをコピーせず、空のNULで埋めます。
DDでのコピーが完了したら、その不良ファイルを置き換えるだけで、Filezillaを過去のバックアップから戻し、すべてが正常に機能しました。これが、障害のあるドライブをバックアップしようとする他のユーザーに役立つことを願っています。
注:私の悪いブロックは、互いにかなり近い場所にあります。不良が検出されたグループで一度に約4ブロック。ブロックがディスク全体にある場合、いくつかのファイルが影響を受ける可能性があります。幸い、私の場合、大きなデータベースの4GBファイルのみが影響を受けました。