破損したドライブ(IOエラー)に対する高度なNTFSパーティションファイル回復テクニック


8

いくつかのVMに影響を与えるESXiホストのハードドライブへの被害は、非常に小さいものの非常に重要です。復元したいファイルがありますが、もちろん、通常のバックアップから除外されました。最新のコピーは6か月前のものです。私はそれが必要なことがわかりました...おっと。

詳細:

1)Parted MagicブータブルISO内でddrescue(AWESOMEツール)を使用して、問題のVMのドライブの99.98%を回復しました。残念ながら、エラーはほとんど最近のファイル書き込みによるものと思われます...もちろん、これらはまさに私が最も回復する必要があるセクターです。

2)ドライブは不良セクターの読み取りでIOエラーを出しますが、以前の不良セクターの読み取りで時々成功します!したがって、回復はまだ可能です。それよりもわずかに多い頻度で、ある種の大きな誤動作が発生し、ドライブがスピンダウンしてバックアップします。ああ、そしてこれらのスピンダウンの約1/4は元に戻りません。(ハードパワーサイクルが必要です。シャットダウンは機能しません)最後に、読み取った不良セクターのほぼすべてに、クリック音が聞こえます。

3)重要なVMディスクはNTFSフォーマットです。

4)破損したNTFSボリュームを読み取り専用で(通常は)マウントできます。また、必要なファイルが含まれているフォルダーに移動できます(頻度は少し少なくなります)。ただし、問題のファイルは、フォルダーの「ls」を実行すると常にIOエラーを表示するようです。フォルダー内の他のファイルは、IOエラーを発生しません。

5)私はntfsinfo / etcを使用してみました...まさに私が必要としているように聞こえます...しかし、それはパーティションをまったく開けません。(イライラする、「マウント」は通常そうするから)

6)ファイルはExcel 2003時代のXLSファイルであるため、生のディスクイメージを検索するための文字列を思いつくかどうかはわかりません。(おそらく6か月前のバージョンの一部ですか?)

私は本当にdebugfsの機能のようなものを使いたいです。ただし、manページからは、パーティションを開くように作られている場合にのみ、ntfsツールが作業を実行できるようです。特に、IOエラーが純粋にファイルのメタデータ内にあるのか、ファイルの内容をコピーするのに十分なだけディレクトリレコードを復元できるのかと思います。最後の手段として、取得できるファイルの部分的なコンテンツが何であれ、すばらしいと思います。

以前は(比較的単純な)カーネルモジュールを作成したことがあるので、より多くのデバッグ情報を有効(または追加)にして特別なNTFSモジュールをコンパイルできます。(ファイルは、回復するために少なくとも数日いじくり回す価値があります...さらに、その過程で素晴らしいものを学んでいます)

ポインタはありますか?

編集:

その他のドライブエラー情報:

/ var / log / messagesにはもちろん多くのNTFS-fsエラーが表示されています...しかし、最終的に、通常取得する未処理のセンスコードメッセージ(センスキー0x3、ASC = 0x11、ASCQ = 0x4)を翻訳する必要がありました。(これはUNRECOVERED READ ERROR-AUTO REALLOCATE FAILEDに変換されるようです)。

ドライブがスピンダウンすると、「scsi0:* BusLogic BT-958 Initialized」というメッセージが表示されます。Linux SCSIドライバーなのか、ESXiドライバーなのか、ドライブ自体をスピンダウンさせるのかはわからない。Linuxドライバーの場合は、ドライバーを変更してスピンダウンを回避できます。この全体のddrescueの事柄は、これらのパワーサイクルを必要とするスピンダウンによって非常に苦痛にされます。

EDIT2:

問題のファイルを含むディレクトリを「ls」した直後に「end_request:I / Oエラー、dev sda、セクター7238859」ログメッセージを使用して、そのセクターをddrescue操作の対象にしました。私は現在、私のチャンスを利用して、成功した場合はそのセクターをライブディスクに書き戻す予定です。おそらく、この方法で問題のファイルへの道をゆっくり再構築できます。それでも、ほとんどの回復可能な不良セクターは20回未満の再試行で回復します...これはこれまでに150回を超えています... *ため息*

EDIT3:

私が必要とするファイルの「ls」からのセクターエラーは完全に非協力的です(1000+は夜通し試行し、運がありません)。あなたが「ls」をするとき、それが単なるメタデータであることを望んでいますか?:)

ほとんどのddrescueコピーは持っていますが、マウントされません(またはファイルなしでマウントされます)。ほとんどの場合、破損したドライブは正しくマウントされます。破損したドライブのIOエラーは、正常に機能するミラーにフォールバックする「マウント」を強制しますか?

** EDIT4:**

私は今のところあきらめ、さらなる提案を待っています。ドライブを取り外して、箱を作り直しました。何かが起きた場合に備えて、ドライブをそのままにしておきます。


3
最初に行うことはddrescue、可能な限り多くのセクターをコピーするために、または他の同様のツールを使用して、ディスクのコピーを作成することです。破損したディスクからファイルシステムレベルのリカバリを行わず、コピーから行います。
Gilles「SO-邪悪なことをやめよう」

1
@Gilles私はddrescueを使用したと述べました。コピーをマウントするための間違った場所にエラーがあるようです。その問題を修正するためにddrescueでどのオフセットに焦点を合わせる必要があるのか​​は明確ではありません...したがって、debugfs(または、通常の「マウント」と同様にパーティションで機能するntfsinfo)のようなものに関する質問。この時点での最善の策は、読み取り専用マウントで不良ドライブにアクセスし、正常に機能するまでコピーにddrescueしようとするときに、セクターエラーの/ var / log / messagesを監視することです。
ダロン

1
このプロセス中にドライブを積極的に冷却しましたか?ドライブをできるだけ冷たく保つことは非常に役立ちます。
Nathan V

回答:


4

私の経験からのいくつかのメモ:

  1. (原因) hdアクセスの試行中に異常な音が聞こえ、問題が(多かれ少なかれ)ランダムなディスクの場所だけで発生しない場合、根本的な原因はおそらくディスク表面(電子機器ではない)にあります-残念ながら、それは悲しいシナリオです。それが「単なる」電子機器である場合、ほとんどまたはすべてのデータを回復する機会があったかもしれません。
  2. (不良セクター)まだ行っていない場合は、ディスクメーカーの起動可能な診断/回復ツールをWebで検索し、ダウンロードして起動し、ディープテストを実行して不良セクターの再マッピングを試みてください。これは無料の方法の中で最高です。 不良セクターは成長する傾向があることに注意してください。2314回目の読み取り試行後にファイルの1つのチャンクをキャッチできたとしても、それらの試行が近くの不良セクターで行われた可能性があり、他の部分を回復する可能性が実質的に減少します。ファイルの。
  3. (NTFSの回復) NTFSファイルシステムおよびMS Windowsネイティブツールを修正できるものはありません。NTFSイメージがマウント可能でない場合(ディスク全体ではなくパーティションをマウントしようとしていることも確認してください!)、testdiskLinuxのようなものを試すことができますが、失敗した場合はWindows chkdiskが役立ちます。仮想マシンの下にWindowsがインストールされている場合、から取得した未加工のイメージddrescueをその仮想マシンでサポートされている形式(VDIまたはなどVMDK)に変換し、それをVMに追加して、コマンドラインモードでWindowsを起動してファイルシステムを修正できます。VirtualBoxを使用する場合、そのような画像を変換するコマンドは、指定された出力形式を取得するためにVBoxManage convertfromraw <filename> <outputfile>オプションで--format VDI|VMDK|VHD使用されます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.