Windows エクスプローラーが爆発しても、破損したメディア (CD、HDD、DVD など) を読み取ることはできますか?
私が質問したいのは、一連の API や、非常に低いレベル (エクスプローラーの下?) でディスクにアクセスできるものがあるかどうかであり、特にまだ表示できる場合は、部分的であっても取得できるものは何でも読み取ることができます。ファイルはエクスプローラーからはありますが、何らかの形で破損しているため (CD の傷など)、何もできませんか?
Windows Explorer の主な問題は、読み取りエラー後のコピーの再開をサポートしていないことです。たとえば、ほとんどの表面に傷のある CD は、取り出して再挿入するたびに、ディスクのさまざまな領域で障害が発生します。
したがって、コピー操作の再開をサポートするユーティリティを使用すると、「イジェクト/リロード/再開」を数回実行することで、破損した CD の内容全体を読み取ることができます。
実際、これは私が書いたユーティリティの機能であり、傷のあるディスクを読み取るのにこれほど手の込んだものは必要ありませんでした。(単に ReadFile と WriteFile を使用します。)
1 つ下のステップは、「\.\F:」などの文字列 (注: スラッシュはここでは文字どおりです) を CreateFile に渡すことによって、未加工のパーティション (つまり、ディスク イメージ) を開くことです。ドライブから未加工のセクターを読み取ることはできますが、そのデータからファイルを再構築するのは困難です。
実際、「\.\」構文を使用すると、「\GLOBAL??」内のデバイスを開くことができます。あたかもファイルであるかのように、Windows Object Manager 名前空間のブランチ。/dev/x をパラメーターとして dd を呼び出すのと同じです。"\Device" ブランチもありますが、DeviceIoControl() (つまり ioctl()) 経由でのみアクセスできます。つまり、単純な ReadFile()/WriteFile() インターフェイスはありません。
それよりも低いレベルのものは、デバイス固有のものになると思います。一部の CD 書き込みプログラムが行うように、生の CD-ROM データ (ECC ビットを含む) を読み取るのと同じです。特定のメディア (CD、フラッシュ、DVD) と、ハードウェアでそれらに対して何ができるかについて調査する必要があります。
注: バックスラッシュは、Web ページに移動する途中で失われるようです。「バックスラッシュ バックスラッシュ ドット バックスラッシュ DeviceName」を CreateFile に渡す必要があります。もちろん、それらもエスケープする必要があります。
最初のステップはdd_rescueです。その後、データを再構築するために何でも自由に試すことができます。
GNU ddrescue はデータ回復ツールです。1 つのファイルまたはブロック デバイス (ハードディスク、cdrom など) から別のファイルまたはブロック デバイスにデータをコピーし、読み取りエラーが発生した場合に最初に正常な部分を救出しようとします。
引数が 3 つのバージョン ( manual )を使用してください。
ddrescue [options] infile outfile [mapfile]
つまり、mapfile
オプションであってもa を使用してください。
ddrescue の mapfile 機能を使用すると、データは非常に効率的にレスキューされます (必要なブロックのみが読み取られます)。また、いつでも救助を中断し、後で同じポイントから再開することができます。mapfile は、ddrescue の有効性に不可欠な部分です。自分が何をしているのかわからない場合は、それを使用してください。
また、Cygwin と Homebrew にも含まれています。
やりたい場合は、Linux 側から実行してください - http://sourceforge.net/projects/monkeycity/ opensourceを参照してください。
または既製のアプリとフリーウェアも: http://www.theabsolute.net/sware/dkinv.html
磁気ストレージデバイスからデータを回復するためのゴールドスタンダードは、SpinRiteである必要があります。ただし、これは商用アプリなので、おそらくそれから多くを学ぶことはないでしょう。
2 つのディスクが分解し始めました。読み取り不能なセクターのパターンから、エマルジョンの内部フレーキングがあったと思います。WinXP エクスプローラーは手を離して、ドライブが存在しないと言っただけです。
どちらの場合も、Runtime Software ( http://www.runtime.org/ )の「GetDataBack for NTFS」を使用しました。無料試用版をダウンロードすると、料金を支払った場合に何が得られるかがわかります。私が購入した時は49ドルでしたが、今は79ドルになっています。
このプログラムは素晴らしいです。複数の試行からコンセンサス値を取得しようとして、いくつかのセクターを何度も再読み取りするため、必ずしも高速ではありませんが、完了すると、永遠に失われたと思っていたものを取り戻すことができます。分析に 10 時間以上かかった 1 つのドライブがありましたが、分析が完了すると、500GB ドライブの 97% 以上が回復しました。間違いなく価格に見合う価値があります。
もう 1 つの優れたツールは、Beyond Compare です。リビジョン 2.5.3 を持っていますが、現在は 3.?? です。費用は 30 ドルです。フル機能の 30 日間の試用期間があります。大量のファイル (およびコピーする必要があるファイルのみ) をコピーするのに優れた仕事をし、Explorer とは異なり、何かが失敗しても爆発しません。Samba 関係者のプログラムに慣れているなら、これは Windows 用のビジュアル rsync のようなものです。
私は非常に満足している顧客であることを除いて、言及された会社のいずれとも関係がありません.
Linux 側から、または BartPE ( http://www.nu2.nu/pebuilder/ ) を使用して運が良かったのですが、ファイルを表示したからといって、常にファイルが回復可能であるとは限りません。 Windows または Linux から再試行します。回復プログラムの試用版を使用することをお勧めします。
Linux マシンをお持ちの場合は、dvdisasterをお勧めします。本来はエラー修正ファイルを作成するためのものですが、DVD をイメージに読み取り、読み取りエラーを無視します。また、異なるドライブを次々に使用して、不足しているセクターをイメージで埋めることができます。
Windows エクスプローラーと Win32 API の間にどのレイヤーが存在するかわかりません。Win32 ファイル I/O を使ったプログラムを書いてみてください。それが機能しない場合は、独自のデバイス ドライバーを記述して、さらに低くする必要があります。