S_a_k_Uの日記みたいなDB

~サクゥーと呼ばないで~

USB接続された外付けHDDの障害

USB接続された外付けHDDにアクセスできなくなったという連絡があったので、様子を見に行ってみた。
これまでよくよく考えたら、HDD障害で「データ喪失の事態に遭遇したことない」or「喪失しても問題ないデータしかなかった」みたいで、障害が発生したHDDからのデータ復旧ってあんまり経験したことなかったので試行錯誤しながら。

自宅にHDDを持ち帰って、あれこれ調べながら使ったツールは2つとも中華アプリで、使うのに躊躇せんわけでもなかったけども。
外付けHDD:I-O DATA HDCN-U1.0(1TB)
ディスク情報:CrystakDiskInfo 9.1.1
ディスククローン:QILING Disk Master Free 7.2
復元・修復:EaseUS Data Recovery Wizard 16.2.0.0(ビルド:2023-07-03)

現地での状況

Windowsエクスプローラーで該当ドライブにアクセスしようとすると、「ドライブ *: を使うにはフォーマットする必要があります」と表示される。
CrystakDiskInfoで見てみると、案の定不良セクタ?(代替処理保留中のセクタ数)があるみたい。
 

この不良セクタのせい?でWindowsからファイルシステムにアクセスできないため、低レベルに読めるセクタからサルベージしていく感じかな?
方向性としては、削除したファイルの復元みたいに、読めるセクタから破損していないファイルを回復していく感じで。

読めるセクタのデータをコピーする

該当のHDDからそのまま読み込んでファイルを回復しようとすると、どんどん読めないセクタが増えて、回復できないファイルが増えるリスクがある?
1回の処理で終わるのならそれでもいいけど、ちょっと試行錯誤で何回か読み込みしそうなので、まずは今の状態で読めるセクタを正常なHDDにコピーする作業から。
HDDのクローンみたいな作業だけど、イメージ的にはセクタ単位でやってくれる方がいいのか?
探してみて、「QILING Disk Master Free」というツールを使うことに。
実行してみてると、まぁあるよねIOエラーのセクタが。
多分読み込みでリトライしてたせい?処理完了まで24時間以上かかってた。

 タスク名: ディスククローン
 クローン・モード: パーティション, セクターごとのクローン
 ソースパーティションリスト:
    1. (D:, 931.51 GB Fat32/64, ディスク 1、パーティション 1)
 ターゲット パーティション:  ボリューム(H:, 931.51 GB Ntfs/8, ディスク 2、パーティション 1)

 初期化...
 エラーセクタリスト:
    セクター オフセット: 32、番号: 128 (ファイルの読み取りに失敗しました。ディスクまたはネットワークに問題がある可能性があります。 )
    セクター オフセット: 60576、番号: 128 (ファイルの読み取りに失敗しました。ディスクまたはネットワークに問題がある可能性があります。 )
    セクター オフセット: 60704、番号: 128 (ファイルの読み取りに失敗しました。ディスクまたはネットワークに問題がある可能性があります。 )
 パーティションのクローン作成 (ディスク 1、パーティション 1)...
    セクター オフセット: 0、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 60608、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 60672、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 238464、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12170880、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12172992、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12173056、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12173504、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12175424、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12179648、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12379264、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12379328、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12379392、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12379456、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12381056、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12381312、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12381376、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12383872、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12383936、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12384000、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12384768、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12384832、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12384896、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12385024、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12385088、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12385152、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12385216、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12385280、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12385344、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12385408、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12385472、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12385536、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12385600、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12385664、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12385728、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12385792、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12385856、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12385920、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12385984、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12386048、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12386112、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12388416、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12388480、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12388544、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12388608、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12388736、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12388800、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12388864、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12388928、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12388992、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12389056、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12389120、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12389184、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12389248、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12389312、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12389376、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12389440、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12389504、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12389568、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12389632、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12389696、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12389760、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12389824、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12389888、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12389952、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12390016、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12390080、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12390144、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12390208、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12390272、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12390336、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12390400、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12390464、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12390528、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12390592、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12390656、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12393024、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12393088、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12393152、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12393216、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12393280、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12393344、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12393408、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12393472、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12393536、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12393600、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12393664、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12393792、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12394112、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12394560、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12394688、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12394752、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12394816、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12394880、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12394944、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12395008、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 12395072、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 50082240、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 50167104、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 275569344、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 497253504、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 497271680、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 497271744、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 497271808、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 497277824、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 497277888、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 497278016、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 497284032、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 497298816、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 497298880、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 497306752、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 497309504、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 497309568、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 497311104、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 497311168、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 497311232、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 497313152、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 497313280、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 497324224、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 497334336、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 497336256、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 497336384、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 497338368、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 497344512、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 497351040、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 497354944、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 497358720、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 497359104、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 497361024、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 497367296、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 497367360、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 497369152、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 497373632、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 497377536、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 497377792、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 497377856、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 497377984、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 497379392、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 497379456、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 497383872、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 497394368、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 497396416、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 497406720、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 497425408、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 497425472、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 497425536、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 497425664、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 497425728、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 497425792、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 497425920、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 497426112、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 497435776、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 497442240、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 497444096、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 497446336、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 497448384、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 497448704、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 497452416、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 497452480、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 497452544、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 497454144、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 497454208、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 497454272、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 497454336、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 497454528、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 497454976、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 497456576、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 497457216、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 497468992、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 497469504、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 497469568、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 497471168、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 497473344、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 497473408、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 497475456、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 497475520、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 497475648、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 497479424、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 497481792、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
    セクター オフセット: 497481856、番号: 64 (I/O コマンドの送信中にエラーが発生しました。 )
 ディスクまたはパーティション情報の更新。
 ディスククローンが完了しました。
    障害セクター: 11904

読めるセクタのデータをスキャンする

いくつか復元・修復ツールをみて、「EaseUS Data Recovery Wizard」ってのを使うことに。
復元時にパスやファイル名が欠落するのはしょうがないけど、ファイルの種類(画像、PDF、MicrosoftOffice)での分類や、写真のEXIF、MP3などのタグ情報、MicrosoftOfficeの作成者名なんかで分類してファイル名を自動付与してくれ、あとで確認するのに都合が良さげだったので。
こちらも正常なHDDでのスキャンで8時間超かかってた。
ここでちょっと想定外というか罠というか、ツールのトライアル版と無料版が別物とな!?
トライアル版でスキャンしてる最中に、無料版と違ってトライアル版は復元ができないってのに気が付いて、あらら…どうすりゃええんじゃ?と思ったら、スキャン情報をエクスポートして、再インストール後、スキャン情報をインポートすればいいらしい記述をみかけた。
スキャンが終わって、無料版でスキャン結果をインポートして復元しようとしたら、数ファイル復元されてから「ドライブが切断されました」とメッセージが表示されて処理が止まってしまう🤔
あれこれしてみたけど、結局再スキャンするハメに💦

スキャン結果

スキャン結果は約400,000ファイルで1.77[TB]とか。
なんでディスク容量の1[TB]より大きいんじゃ?と思って見てると、『ファイル名なし』と『ファイルパスの紛失』で「アドバンススキャン」ってのがあるので、違うルートで同じファイル?セクタ?を検出して復元候補にしてるっぽい?
 

トライアル版の時点でスキャン後、各ファイルのサムネイルが表示されるのが確認できた時点で、そこそこのファイル(主に写真と動画)が復元できるという目処を立てることができた。
 

ディレクトリの維持』

本当のディレクトリ構造は復元していない?微妙に復元されていないというか、殆どされていないというか。
どこかにあったディレクトリが復元してたり、連番のディレクトリ(DIRnnn)以下にどこかのディレクト構造が復元されてたり。
 

『タグ 抽出済み』

ファイルの種類(画像、PDF、MicrosoftOffice)での分類や、写真のEXIF、MP3などのタグ情報、MicrosoftOfficeの作成者名なんかで分類してファイル名を自動付与してくれてて、ここの中身が復元の選別のメインになりそう。
各フォルダで、ファイルの一覧を表示してる状態でファイルを選択すると、そのファイルのサムネイルが一覧の左端と右エリアに表示される。
 

『ファイル名なし』

拡張子で分類されていて、ファイル名が連番のみ(ファイル名なし (nnn).拡張子)となっている。
 

『ファイルパスの紛失』

連番のディレクトリ(DIRnnn)以下に、どこかのディレクトが復元されている。
 

復元結果

一部のファイル(約3.4%)は復元できなかったけど、期待以上の復元率。
 
(実際の復元は、700GBくらいある1ファイルをこれとは別に復元)

出力されたログ(RecoveryFailed.html)を確認すると、20ファイル分だけ?

予測される理由:

1. 記憶デバイスの空き容量の不足

2. 復旧パスが長すぎるため

3. ファイル名に文字化けが含まれている

4. セクターの読み取り場所がソースパーティションの合計セクター数を超えている

5. 正しいストレージセクターの場所が見つからない

6. 復元したいデータ量は無料額度を超えています。

7. その他の不明な理由



以下は、復元に失敗したファイルです。
番号名前サイズ更新日時種類フォルダ
1CANON EOS 7D MARK II56.MP463.05MB2020-06-15 11:33:55MP4 ファイルLocal Disk (H:)/Lost Files/Tags Extracted/Mov/CANON/CANON EOS 7D MARK II56.MP4
2#3E38C81.tmp136.00KB2020-03-06 04:44:46TMP ファイルLocal Disk (H:)/Lost Files/ファイルパスの紛失/DIR250/#3E38C81.tmp
3#C28DD94.tmp131.00KB2020-03-06 04:37:46TMP ファイルLocal Disk (H:)/Lost Files/ファイルパスの紛失/DIR250/#C28DD94.tmp
4#R5A8759.CR218.61MB2018-07-11 17:35:58CR2 ファイルLocal Disk (H:)/Lost Files/ファイルパスの紛失/DIR170/孫達/#R5A8759.CR2
5aa\'ba\'.ac\629.77MB2006-11-01 04:58:56AC ファイルLocal Disk (H:)/Lost Files/ファイルパスの紛失/DIR164/aa\'ba\'.ac\
6c5\'76\'.a6\629.76MB2006-03-01 04:58:56A6 ファイルLocal Disk (H:)/Lost Files/ファイルパスの紛失/DIR164/c5\'76\'.a6\
7b5\'7b\'.a6\629.76MB2004-11-02 04:58:56A6 ファイルLocal Disk (H:)/Lost Files/ファイルパスの紛失/DIR164/b5\'7b\'.a6\
8bb\'50\'.a4\629.77MB2007-03-01 04:58:56A4 ファイルLocal Disk (H:)/Lost Files/ファイルパスの紛失/DIR164/bb\'50\'.a4\
983\'8a\'.83\629.76MB2005-09-24 04:58:5683 ファイルLocal Disk (H:)/Lost Files/ファイルパスの紛失/DIR2160/83\'8a\'.83\
10IMG_7995.JPG4.00MB2016-09-10 10:08:58JPG ファイルKozニxチ'%謚/ファイルパスの紛失/DIR6300/IMG_7995.JPG
11#MG_7994.JPG4.24MB2016-09-10 10:08:56JPG ファイルKozニxチ'%謚/ファイルパスの紛失/DIR6300/#MG_7994.JPG
12IMG_7993.JPG4.12MB2016-09-10 10:08:50JPG ファイルKozニxチ'%謚/ファイルパスの紛失/DIR6300/IMG_7993.JPG
13#MG_7992.JPG3.88MB2016-09-10 10:08:24JPG ファイルKozニxチ'%謚/ファイルパスの紛失/DIR6300/#MG_7992.JPG
14#MG_7991.JPG3.73MB2016-09-10 10:08:22JPG ファイルKozニxチ'%謚/ファイルパスの紛失/DIR6300/#MG_7991.JPG
15#MG_7990.JPG3.70MB2016-09-10 10:08:00JPG ファイルKozニxチ'%謚/ファイルパスの紛失/DIR6300/#MG_7990.JPG
16IMG_7989.JPG3.95MB2016-09-10 10:07:42JPG ファイルKozニxチ'%謚/ファイルパスの紛失/DIR6300/IMG_7989.JPG
17IMG_7988.JPG4.29MB2016-09-10 10:07:40JPG ファイルKozニxチ'%謚/ファイルパスの紛失/DIR6300/IMG_7988.JPG
18#MG_7987.JPG3.32MB2016-09-10 10:07:34JPG ファイルKozニxチ'%謚/ファイルパスの紛失/DIR6300/#MG_7987.JPG
19IMG_7986.JPG4.02MB2016-09-10 10:07:28JPG ファイルKozニxチ'%謚/ファイルパスの紛失/DIR6300/IMG_7986.JPG
20IMG_7985.JPG3.92MB2016-09-10 10:07:26JPG ファイルKozニxチ'%謚/ファイルパスの紛失/DIR6300/IMG_7985.JPG

 

それから、画像や動画のファイルを開こうとすると、「ファイル形式がサポートされていないか、ファイル拡張子が正しくないか、ファイルが破損している可能性があります。」と表示され開けないファイルもあるので、上記の約3.4%以上復元できていない。
これは、不良セクタによりデータそのものが読めない状態?もしくは削除や上書きされたファイルの残骸のような状態?と思われ、今回の障害では復元のしようがないデータと判断している。
また、画像ファイルで以下のように一部だけ?の状態だったりするファイルも散見されるけど、これは元ファイルの時点でデータが欠落してたと判断すべきなのかな???
 

HDDの障害の度合いの評価やらどの程度が復元すべきファイルなのか判断できないけど、ツールが強力なのか思ったより復元できたような気がする。