testdisk
を使用して、破損したハードドライブのデータを回復しようとしています。私はすべてを実行し、クイック検索を実行し、より深い検索を行い、testdisk
によってファイルが見つかったことを確認した後、パーティションテーブルを作成しました。コンピューターを再起動しました。だから、今、私はさらに大きな問題を抱えていると思う。ハードディスクはtestdisk
に2199GBのドライブとして播種されており、testdisk FAQで推奨されているようにSATAポートに直接接続すると、BIOSでも正しく認識できず、できません。 testdisk
を再度実行します。通常サイズ(500GB)のドライブが認識されないためです。
データを回復しようとして読み取り専用でドライブをマウントしようとしても機能しません。"NTFS is inconsistent"
というメッセージが表示されます。
Windows Disk Managerでドライブを表示しようとしましたが、表示されるまでに非常に長い時間がかかり、そのサイズに関する情報がなく、未加工のまま表示されます。
ドライブを認識する際のtestdiskの出力。私の個人的なハードドライブ(sda)と回復したいドライブ(sdb)の両方が500GiBと表示されていることがわかります。
注意すべき点の1つは、sda(私のハードドライブ)がリストに占めるディスク容量は、回復したいハードドライブが占有するディスク容量であるということです。実際、HDで占有されるディスク容量は110GBです。
LEDが点灯し、ディスクが動作していると感じることができるため、ドライブが停止していないことを確認できます。
smartmontoolsまたはgsmartcontrolを使用してハードドライブの状態を確認すると、次のようになります。
それは大学と修士号の資料を進化させるため、そのデータを回復することは非常に重要です、そして私の最後のバックアップは1ヶ月前からです(バックアップの外部USBドライブで利用可能なスペースのために毎日それを行うことはできません)。
誰かが助けてくれるといいのですが、多くの人がこの問題を抱えていることも知っています。
有用な知識になり得る事実:
R-Studioデモは私のテストでは役に立たなかった。ドライブをプラグインした状態で開こうとすると、プログラムが機能しない/応答しない。
WD Lifeguard Diagnosticは、テーブル上のドライブを表示しないため、校正にも役立ちません。
ドライブは精神的に損傷を受けているようには見えません。
編集1:
要求どおり、[ Geometry ]
画面:
真のディスク容量を表示するように数値を調整する必要がありますか、回復オプションがありますか?
EDIT 2:ドライブはWD Blue、モデルWD500LPVXです
EDIT 3:コマンドparted -l /dev/sdb
の出力は次のようになります。
しばらく実行した後、Sudo grep -abiro "NTFS " /dev/sdb
コマンドの出力が表示されました。
grep: /dev/sdb: Input/output error
印刷を修正すると、partedコマンドを実行する前にsdb
がアンマウントされたように見えます。上の画像は実際の出力です。
注目すべき点は、最初の出力が約20秒かかった後のgrep
コマンドは、ドライブを外さずにコマンドを再度実行すると、即座に同じ出力が得られることです。
編集4:
ddrescue
は数時間実行されていますが、次のように出力の動作に奇妙な点がいくつかあります。
最初に、status.log
ファイルのいくつかの行のサンプル:
# Rescue Logfile. Created by GNU ddrescue version 1.19
# Command line: ddrescue /dev/sdc /media/sidious/Supply/dotk/bkpHD/copy.img /media/sidious/Supply/dotk/bkpHD/status.log
# Start time: 2016-07-29 01:05:36
# Current time: 2016-07-29 01:30:51
# Copying non-tried blocks... Pass 1 (forwards)
# current_pos current_status
0x8482360000 ?
# pos size status
0x00000000 0x00010000 *
0x00010000 0x00010000 ?
0x00020000 0x00010000 *
0x00030000 0x00020000 ?
0x00050000 0x00010000 *
0x00060000 0x00040000 ?
こんな感じでしょうか?
次に、コマンドの出力は次のとおりです。
rescued
、ipos
、およびopos
に表示されている値が間違っているかどうかはわからないので、このようにする必要があるかどうかを誰かに尋ねてください。ドライブの実際の容量は500GBで、表示されている数値の一部はそれより大きくなっています。
また、copy.img
ファイルのサイズは0バイトです。これは、コピーされるデータがないこと、または回復する必要のあるデータがないことを意味しますか?
EDIT 5:
長いプロセスと待機の後、プロセスを続行するためにドライブを何度も再接続すると、ddrescue
が終了したように見えますが、.img
ファイルには0バイトがあります。私は何か間違ったことをしましたか?私はちょうど与えられた指示に従った。
EDIT 6
ドライブが「死んでいない」場合、エラーを解決するために与えられたプロセスがほとんど機能するため、この質問を解決済みとしてマークしています。特にAndrea Lazzarottoに考えを与えてくれたすべての人に感謝します。
ドライブは精神的に破損しているようには見えません。
幸いなことに、ハードドライブには感情がありません。 ;)ただし、ドライブが物理的に損傷しているように見えるか、少なくとも障害が発生していることをお知らせします:
ドライブを外さずにコマンドを再度実行すると、即座に同じ出力が得られます
これは基本的に「良くない」という意味です。
この場合に絶対に必要なことは次のとおりです。
testdisk
で書き直そうとするのを既に停止しています。これは良いことです)まず、ddrescue
パッケージを使用してgddrescue
ツールをインストールします(g
はnotタイプミスです) 、故障したドライブの正確なコピーを作成し、できるだけ多くの情報を複製するために使用されます。私は基本的に 私の私のこの答え 関連する質問について引用します:
Sudo ddrescue /dev/sdb /media/user/External/copy.img /media/user/External/status.log
status.log
ファイルは必須ではありませんが、プロセスを一時停止して後で再開する場合に必要です。
ご覧のとおり、500GBドライブ全体のコピーを保持するのに十分な大きさの別のドライブ(基本的には、少なくとも1TBのハードディスク)が必要です。私の例では、/media/user/External
にマウントされています。例を状況に合わせて調整してください。
ddrescue
ツールは、その進捗を/media/user/External/status.log
ファイルに保存します。 これは非常に便利ですI/Oエラーによりドライブが「消える」可能性があるためです(grepping)。プログラムは停止します。ドライブを再接続し、同じコマンドを再度実行します。停止した場所から続行します。
さらに、ddrescue
は最初に「良い」ブロックと「大きな」ブロックを読み取り、その後、すべての正常なビットが分離されるまで、1回の操作で読み取られるデータの量を削減しようとして、より破損した領域に戻ります。
ドライブは2TBドライブとして表示されますが、実際には500GBドライブです。したがって、ドライブをコピーするプロセスは500GBで停止します。
これで、以前と同じようにTestDiskを使用できますが、コピー上で:
Sudo testdisk /media/user/External/copy.img
パーティションのコンテンツを見るポイントに到着すると( P キー)、パーティションテーブルの書き込みに進まないでください。代わりに、 C 必要なデータの抽出を開始するためのキー(破損しないことが望ましい)。
この操作では、ファイルを抽出するために、ドライブ(ビットストリームコピーの保存に使用したドライブ、またはUSBキーなど)に空き領域が必要です。
TestDiskが破損していないためにNTFSドライブにアクセスできない場合、RecuperaBitを使用して、説明したようにNTFS構造を再構築できます 上記の回答 。
免責事項:私はRecuperaBitの開発者です。