外付けハードディスクにアクセスできません。「ディスク構造が破損していて読み取り不可能」


11

1 TBのAgentGoFlex Seagate外付けHDDを持っています。

最近、データのあるいくつかのフォルダにファイルが表示されないなどの問題が発生していました。いくつかのフォルダーが開かなかったなど。

そのためchkdsk、Windows 8で実行してみましたが、正常に完了しませんでした。それで、HDDを外しました。HDDをシステムに接続すると、認識されません。Linuxではまったく認識されていません。

Win8でコマンドプロンプトからディスクにアクセスしようとすると、「ディスク構造が壊れており、読み取ることができません」と表示されます。

でもchkdskエラーで今失敗している:「ファイルシステムはNTFSでボリュームのバージョンと状態を判別できませんCHKDSK中止されました。。。」

Fから「チェックユーティリティ」を実行しようとすると、→右クリック→プロパティ→ツール→チェックすると、以下のエラーが発生します。

エラーのスクリーンショット:Windowsがディスクにアクセスできないため、ディスクチェックを実行できませんでした

私は非常に重要なデータを持っているので、ディスクをフォーマットすることはオプションではありません。

ハードディスクへのアクセスを可能にするために何ができるかを提案してください。


1
ディスクを専門のデータ復旧会社に送ることができない場合、次の最良の解決策は、ディスクのイメージを現在の状態(ディスクが完全に故障する前)にしようとすることです。次に、イメージファイルを「安全なコピー」として保持し、ディスクまたは複製されたイメージファイルを復元してみます。Linuxは少なくともある程度はドライブを認識していると思います。無料のディスクイメージングツールを入手して、最初に別のディスクにイメージを書き込んでみてください。
Waxhead 2013

1
ラムハウンドが正しいかもしれません、あなたのドライブは死んでいるかもしれません。データは回復可能かもしれませんが、自宅でそれを行うと、さらに多くのファイルが失われる可能性があります-一部の専門家はあなたを助けることができるかもしれません。また、バックアップを作成する人とバックアップを作成する人の2種類しか存在しないことを覚えておいてください。
gronostaj 2013

回答:


10

まず最初に、ディスク上でこれ以上何もしないでください(少なくとも書き込み行わないでください)。ディスクが認識されていない(「認識されて空であるか、データを読み取れない」とは対照的に)は、完全にブラストされたディスクで、chkdsk実行できないか、パーティションテーブルまたはディスクのジオメトリに問題があるようです、またはUSBエンクロージャがそれを処理する方法。ハードウェア障害も考えられます。

これは、 USBエンクロージャーがディスクとそれらが接続されているコンピューターとの間でネゴシエーションを試みるときに発生する可能性があり、発生します。したがって、最初に行うことは、ddLinux を使用して、可能な限り物理レベルに最も近い(明らかに大きい)ディスクにディスクのイメージを作成することです。次に、実際のディスクにさらに損傷を与えるリスクなしに、心ゆくまでイメージコピーをいじることができます。

更新:Linuxでのデバイス認識

「外部ディスク」には3つ以上のエンティティがあります。USBエンクロージャーハードウェア。ブロックデバイスとして公開されます。エンクロージャー内の物理ディスク。物理デバイス、つまり最初から最後までのLBAセクターのシーケンス。そして最後に、ゼロ以上のデータパーティションで、ファイルシステムをホストします。「認識」されてデスクトップに表示されるには、チェーンのすべてのリンクが機能している必要があります。ただし、物理デバイスのイメージを取得するには、最初の2つだけが必要です。デバイスを接続してコマンドラインをdmesg(rootとして)実行すると、次のように表示されます。

[4984939.028491] usb 8-6: new high speed USB device using ehci_hcd and address 3
[4984939.166658] usb 8-6: configuration #1 chosen from 1 choice
[4984939.170660] scsi7 : SCSI emulation for USB Mass Storage devices
[4984939.172003] usb-storage: device found at 3
[4984939.172005] usb-storage: waiting for device to settle before scanning

...これは、エンクロージャが認識され、それ自体とその内容を識別します。

[4984939.170660] usb 8-6: New USB device found, idVendor=1058, idProduct=1021
[4984939.170660] usb 8-6: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[4984939.170660] usb 8-6: Product: Ext HDD 1021
[4984939.170660] usb 8-6: Manufacturer: Western Digital
[4984939.170660] usb 8-6: SerialNumber: 574D43305431303831303734
[4984944.400970] usb-storage: device scan complete

次に、ドライバーがそのジオメトリ、性質、および暗黙的にそのデバイスノードを通知していることがわかりますsdd(ここでは、SCSI Disk Fourの場合sdasdbおよびsdcは既に取得されています)。

[4984944.404739] scsi 7:0:0:0: Direct-Access     WD      Ext HDD 1021    2021 PQ: 0 ANSI: 4
[4984944.404739] sd 7:0:0:0: [sdd] 1953519616 512-byte hardware sectors (1000202 MB)
[4984944.407367] sd 7:0:0:0: [sdd] Write Protect is off
[4984944.407369] sd 7:0:0:0: [sdd] Mode Sense: 17 00 10 08
[4984944.407371] sd 7:0:0:0: [sdd] Assuming drive cache: write through
[4984944.408741] sd 7:0:0:0: [sdd] 1953519616 512-byte hardware sectors (1000202 MB)

次に、カーネルはパーティションが存在することを認識します(これが表示されない場合、パーティションは存在しないか無効です)。

[4984944.411497]  sdd: sdd1

これでLinuxには必要なものがすべて揃い、アタッチが成功したことが報告されます。

[4984944.416739] sd 7:0:0:0: [sdd] Attached SCSI disk
[4984944.416739] sd 7:0:0:0: Attached scsi generic sg4 type 0

データ・パーティションの検索が始まるように、つまり、OK、我々は持っているsdd1が、そこには何ですか?、そして答えは:

[4984997.498613] NTFS driver 2.1.29 [Flags: R/W MODULE].
[4984997.554613] NTFS volume version 3.1.
[4984997.568859] NTFS-fs error (device sdd1): load_system_files(): $LogFile is not clean.  Mounting read-only.  Mount in Windows.
[4985390.027808] NTFS-fs error (device sdd1): ntfs_remount(): Volume has errors and is read-only.  Cannot remount read-write.
[4985442.423299] NTFS volume version 3.1.
[4985442.425032] NTFS-fs error (device sdd1): load_system_files(): $LogFile is not clean.  Mounting read-only.  Mount in Windows.

これは「良い」マウントでした。しかし、デバイスがsdd、またはsdcまたはsdbであることを知っているだけで、バイナリコピーを作成できます(十分な空き領域があると想定してい/mnt/backupdiskます):入力ファイル/dev/sdd、出力ファイルDiskImage.rawブロックサイズ1 MB

# dd if=/dev/sdd of=/mnt/backupdisk/DiskImage.raw bs=1M

入力ファイルは (およびその他の番号では/dev/sdd なく /dev/sdd1)であることに注意してください。ここで、必要に応じて、内のデータパーティションのオフセットを確認し、DiskImage.rawループデバイスを使用してマウントすることができます。ここに汚い詳細があります。

最初の回復の試み

次に、物理ディスクを別のエンクロージャーに配置して、エンクロージャーが良好であることを確認し、新しいエンクロージャーがディスクを正しく解釈できるようにします。ディスクが再び表示される場合は、以前のエンクロージャが壊れていた可能性があります。念のために、新しく見つかったドライブの内容をすべてバックアップし、バックアップを確認し、ディスク上書きユーティリティを使用してディスクをゼロにし、完全に機能しなくなるようにします(デバイスチェーン内に異なる意見を持つ2つのデバイスは使用できません)。 Windowsからネイティブにデータを復元します。それはラッキーショットですが、私はそれが起こるのを見ました。そして、その試みはあまり高くなく、新しいUS $ 19,99の良い囲いです。

元のエンクロージャが不良だった場合、ディスクを再フォーマットできないか、ディスクにアクセスできません。あなたは、新しいエンクロージャを再試行することができ、それが動作するかどうか、どちらかの古い筐体を交換する、または新しいを使用しておく(ただし、新しいエンクロージャーがある場合、これは価値がある、非常に優れたUS $ 19.99エル安っぽいより)。

専門家による回復

Googleで見つけられる専門の復旧サービス。あまり正直ではない方法は、物理ディスクを送信することです。「はい、ハードウェアの損傷はなく、すべてのデータをUS $ $$$、$で回復できます。 $$!」答え– さて、あなたはデータがまだ回収可能であること知っているでしょう。だから、あなたはあなたが取ったイメージバックアップでそれを自分で無料で試すことができ、診断とディスクのS&Hに対してのみ支払うことができます。あなたが失敗した場合でも、要求された生地を咳払いするオプションはまだあります。そこにいる場合であるハードウェアの損傷を、プロのサービスは基本的に、あなたのある唯一のオプション。「一時停止」ディスクを(一時的に)復活させるいくつかのブードゥートリックがあります。多くの場合、少なくとも最も重要なデータを回復するのに十分な長さです。毎回動作することが保証されているものはありません(ディスクを加熱、冷却、「回転」-固い表面に対してスマートにラップするよう提案されていることも確認しました)。それらのすべてがより多くのダメージを与えます。つまり、最初に機能する1つのトリックを必ず使用する必要があります。そうしないと、ディスクを永久に強制終了します。私はちょうどあなたが復活ディスクに関する成功事例を見ることができます理由を説明するためにこれを追加しました:そこにある、そのような話は。しかし、あなたが(ほとんど)それがあなたに起こると確信することを望むなら、まあ、専門家を雇ってください

ハードウェアに問題がないと確信している場合-ディスクが回転したり、ガタガタ音がしたり、奇妙な音やブザーが鳴ったり、クリック音が鳴ったりしませんでしたchkdsk

DIYリカバリー

「ホーム」リカバリは通常、次のようになります(基本的に、ハードウェアの損傷が軽減されたらプロの担当者が行うのと同じことです)、ディスクイメージコピーで作業します。

  • ディスクイメージの最初のセクターが有効なパーティションテーブルかどうかを確認します。そうでない場合は、ユニット上にあるFSに応じて、有効なパーティションテーブルまたは認識可能なNTFSまたはFAT32ブートセクターを探してディスクイメージをスキャンします(1 TBのユニットの場合、NTFSが唯一の論理的な可能性のようです)。どちらの方法でも、最初の数メガバイト内で何かを見つける必要があります。

  • パーティションテーブルが見つかった場合は、データパーティションがパーティションテーブルで指定されている場所にあることを確認します。そうでない場合、これは非常に朗報です。おそらく、パーティションテーブルが間違っているだけです。修正は簡単で(いくつかのLinuxパーティションエディターがそれを行います)、ディスクの回復率は100%と予想されます。安全のために、読み取り専用モードのループデバイスを使用してLinuxにデータパーティションをマウントし、読み取り可能かどうかを確認してください。そうである場合、パーティションボーキングが確認され、ディスクが確実に完全に回復する途中でディスクが発音される場合があります。そうでない場合は、パーティションが正しい可能性があり、データパーティション(の一部)が書き換えられています。これは悪いです; 以下の「酸っぱいもの」を参照してください。

  • 見つかって有効な場合は、ドライブのジオメトリと照合して確認します。一致しない場合は、問題の根本的な原因を見つけた可能性があるため、これも実際には良いことです。物理ジオメトリをカーネルに強制することができます(Linuxブート時に取得できます)。新しいジオメトリによって、Linuxでディスクが認識されるかどうかを確認します。存在する場合は、データをバックアップし、バックアップが正しいことを確認して、ディスクをddゼロにします(適切なsdデバイスに数メガバイトのゼロで十分です)。コンピューターの電源を切り(再起動だけでなく、大げさですが、コストはかかりますが、何かを達成できる可能性があります)、Windowsを起動して、無知なディスクを最適なフォーマットにフォーマットします。これにより、Windowsとの競合がなくなります。ディスク上のデータを復元します。楽しい。

  • ジオメトリトリックが機能しない場合、またはパーティションが見つからない場合、またはパーティションが空であることが判明した場合は、問題が発生します。失われたデータのデータ領域(MFTなど)を検索してディスクイメージをスキャンできる回復ツールが必要です。そして、見つかったら、データを取得するためにそれらを解釈します。これは難しい仕事であり、常に完全に自動化できるとは限りません。より低く、より絶望的なレベルでは、これは個々のファイルのシグネチャをスキャンすることを含み、それらがディスク内の連続したブロックにあることを期待します。この種の操作は、専門家に喜んで任せます。古いFATディスクを使用して、何度か、常に成功しました。新しく、より大きく、より断片化されたFAT32ディスクを使用して、約50%成功しました。私が試みた 非常に複雑なNTFSおよびext4ファイルシステムでは、数回、結果は不十分でした(ただし、完全なバックアップがあり、実際にはすべてを提供していませんでした)。

Linuxからの手動リカバリ

では、Linuxでパーティションをマウントしようとするとエラーが発生します(は異なることに注意してください –イメージはを参照)。/dev/sdc /dev/sdcN /dev/sdc

# mount -t ntfs /dev/sdc1 /mnt/recovery
ntfs_mst_post_read_fixup_warn: magic: 0x00000000  size: 1024   usa_ofs: 0  usa_count: 65535: Invalid argument
Record 1 has no FILE magic (0x0)
Failed to open inode $MFTMirr: Input/output error

...これは、システムがと考えるパーティションが間違っているか、ひどく損傷していることを示しているようです。最初のオプションをまずチェックしてみましょう:

# fdisk /dev/sdc

あなたはこのようなものを手に入れます:

Disk /dev/sdc: 1000.2 GB, 1000204885504 bytes
1 heads, 63 sectors/track, 31008335 cylinders, total 1953525167 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x9d2b7596

Device       Boot      Start    End          Blocks       Id  System
/dev/sdc1              63       1953520127   976760032+   7   HPFS/NTFS/exFAT

次のステップは、実際のパーティションの開始を確認することです。画像ファイル(または/dev/sdc)をシークして、NTFS署名を検索します。

  00000000:EB 52 90 4E 54 46 53 20 -20 20 20 00 02 08 00 00 .R.NTFS ........ 
  00000010:00 00 00 00 00 F8 00 00 -3F 00 FF 00 3F 00 00 00 ........?...?... 
  00000020:00 00 00 00 80 00 80 00 -4A F5 7F 00 00 00 00 00 ........J....... 

# dd if=/dev/sdc bs=512 count=1 skip=63 2>/dev/null | hexdump -C | head -n 1

...上記のデータを使用すると、NTFSブートがセクター63にあると予想されるため、設定しましたskip。また、最初の(たとえば)メガバイトのすべてのセクターを試してみます...

# dd if=/dev/sdc bs=512 count=2000000 2>/dev/null | hexdump -C | grep "00:EB 52 90 4E 54 46 53"

... ブートセクタが1つだけあることを確認します(これは私に起こりました。FAT32ディスク上ですが、それでも)、どこにも読み取りエラーがないことを確認します。

あなたの結果

00007e00  eb 52 90 4e 54 46 53 20  20 20 20 00 02 08 00 00  |.R.NTFS    .....|

セクター63は、63×512 = 32256 = 7e00の16進数のオフセットを提供します。NTFSブートセクターがあり、パーティションテーブルは正しいようです

これで、大きなチャンクをコピー/dev/sdc1して、たとえば/tmp/mydisk.imgLinuxから修正できるようになりました。これにより物理ディスクが損傷することはありません。物理ディスクは変更されずに他の試行に使用できます。そして、PTが正しいことがわかったので/dev/sdc1、コピーに使用して、以前は不可能であった希望を楽しませることができます。

# dd if=/dev/sdc1 of=/tmp/mydisk.img bs=1G count=10
...after copying 10 gigabytes...

# ntfsfix /tmp/mydisk.img

NTFSfixが機能しない場合は、問題が発生しています。ただし、試すことができるより正確なユーティリティがあります。また、JPEG画像ファイルを復元する必要があり、ファイルシステムが断片化されていなかった場合、JPEGヘッダーをシークすることでこれを自動的に行うことができます。同じ、ほとんど、ことを除いて、PDF、TIFFおよびOfficeドキュメントのために行く、私は(私は、JPEGファイルのためでしょう:-))それらを認識するのか分かりません。最後のオプションとして、私はこれらの人を見つけました–私は彼らを知りません、彼らとは関係がなく、何の責任も負いません。しかし、これらのことが行くと、価格は非常にリーズナブルです。


@ Iserni-情報をありがとう。私の最初の問題は、HDDのイメージがLinuxでまったく認識されないために作成できないことです。Windowsでは少なくとも検出されますが、アクセスできません。
Anurag Rana

回答の再更新:「認識できません」
LSerni

@Isreni-どうもありがとうございました。ディスク内のデータのイメージを作成できますが、ディスク内のデータは400GBで、ラップトップで使用可能な最大サイズは200GBです。したがって、完全なイメージを作成することはできません。途中で中止します。400GBのうち200GBをラップトップにコピーし、その200GBのイメージから一部のデータを回復する方法はありますか?
Anurag Rana

はい、パラメーターを使用ddしてcount、特定の数のギガバイトのみを取得できます(ddとディスクベンダーがGBの大きさに同意していないことを考慮してください。一方の「200 GB」は、他方の「190 GB」を意味する場合があります。ただし、新しい500 GB USBディスクの価格は約59,99米ドルであることも考慮してください。おそらく、それは費用に見合う価値があります。ディスクをイメージできるという事実は、おそらくハードウェアに欠陥がないことを意味します。ソフトウェアを検討していますここで誤動作します(重要な領域でセクターハードウェアの誤動作による
悲惨

@Isreni-ありがとうu :)今日、私はシーゲイトリカバリソフトウェア(無料版)を使用しました。HDDの読み取り、すべてのフォルダーの一覧表示(従来どおり)、64 KB未満のすべてのファイル(無料版)の復元が可能です。つまり、HDDでハードウェアエラーが発生することはありません。ddを使用してラップトップに200GBのデータをコピーした後、通常のディレクトリにアクセスするようにそのダンプにアクセスできますか?No..right ..作成されたダンプは、通常のアプリケーションがインストールされていると開くことができないファイルであるためです。次に、そのダンプから必要なフォルダ/ファイルをどのように抽出/コピーできますか?
Anurag Rana

-2

管理者権限としてcmdに移動し、chkdsk X:/ fと入力します(「X」はドライバーのボリューム名、「/ f」は修正です)


@Iserniの回答は回答レベルを高くしすぎたため申し訳ありませんが、私は反対票を投じる必要があります
Francisco Tapia

OPから:「chkdskでもエラーで失敗しました:「ファイルシステムはNTFSです。ボリュームのバージョンと状態を判別できません。CHKDSKが中止され、 ""。
Ƭᴇcʜιᴇ007

-3

私と私の同僚にとって、ディスクをマウントchkdskしてWindows 7で使用する単純なソリューションです。

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