まず最初に、ディスク上でこれ以上何もしないでください(少なくとも書き込みを行わないでください)。ディスクが認識されていない(「認識されて空であるか、データを読み取れない」とは対照的に)は、完全にブラストされたディスクで、chkdsk
実行できないか、パーティションテーブルまたはディスクのジオメトリに問題があるようです、またはUSBエンクロージャがそれを処理する方法。ハードウェア障害も考えられます。
これは、 USBエンクロージャーがディスクとそれらが接続されているコンピューターとの間でネゴシエーションを試みるときに発生する可能性があり、発生します。したがって、最初に行うことは、dd
Linux を使用して、可能な限り物理レベルに最も近い(明らかに大きい)ディスクにディスクのイメージを作成することです。次に、実際のディスクにさらに損傷を与えるリスクなしに、心ゆくまでイメージコピーをいじることができます。
更新: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の場合sda
、sdb
および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.img
Linuxから修正できるようになりました。これにより物理ディスクが損傷することはありません。物理ディスクは変更されずに他の試行に使用できます。そして、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ファイルのためでしょう:-))それらを認識するのか分かりません。最後のオプションとして、私はこれらの人を見つけました–私は彼らを知りません、彼らとは関係がなく、何の責任も負いません。しかし、これらのことが行くと、価格は非常にリーズナブルです。