



データ復旧サービス 欠損したデータの探索方法
データ復旧では、不良セクタが発生していることを前提に作業を進める必要があります。
不良セクタは、その部分のデータは正常に読み出せないため、エラー訂正などの手法によって欠損したセクタを補う必要があります。
ここで実際の復旧現場では、エラー訂正だけでは対応できないケースも多くあります。
エラー訂正が不能な状態ならその処理だけに頼ったデータ復旧では十分に対応できません。
そこで、欠損したセクタに対して、別の手法による補完処理を行います。
情報が失われてしまった場所に対して勝手にデータを追加するわけにはいきません。
誤った補完を行えばファイル構造やデータの整合性を損なうおそれがあるためです。
そこで失われても整合性を保てる場所と解析が必須となる場所を明確に分けて考えることです。
失われても整合性を保てる場所とは「未使用セクタ」や「データ本体に直接関係しないインデックスバッファ」領域です。
欠損していてもファイルの実データそのものに直接影響しない場合があります。
一方で、ファイル本体・ファイルシステムの重要情報・断片化情報・管理領域などに関わる箇所は、慎重な解析が必要です。
このような領域を安易に補完すると復旧結果の整合性が崩れる可能性があります。
欠損箇所を一律に処理するのではなく領域の役割を判定します。
整合性を保てる箇所と詳細解析が必要な箇所を切り分けて計算と解析を行いながら復旧を進めます。
このように欠損したデータを単純に埋めるのではなく構造を見極めながら処理することで、復旧率を段階的に高めることが可能になります。
統計処理の導入
データ復旧の解析では「手数」の考え方がとても大切な要素となっております。
例えば同じデータを取得する場合であっても複数の方法が存在するものとします。
この場合は正常なドライブならば「どちらでもいい(ファイルシステムが成立)」となります。
しかしデータ復旧の現場では「手数」が少ない方を優先的に選ぶ必要があります。
ここで「優先的」としたのは「手数」が少ない手法であっても、リスクが高い場合にはあえて「手数」が多い方を選択する場合があるためです。
固定化される不良セクタ
不良セクタが発生したとき一度発生した不良セクタが「固定化」されるなら、不良セクタの回避はスキャン区間に設定することです。
その区間内を同じルールに固定化して不良セクタを避けることを実現いたします。
ファイル修復:壊れている要因が「内部」に存在する場合
復旧データが壊れていて使えない。目的のデータを復旧したが、肝心の内部が壊れている。
そのような場合の手段としてファイル修復という手法があります。
ここで、データが壊れている要因が内部に存在する場合と、外部に存在する場合で、修復難易度が変わってきます。
まず壊れている要因が内部に存在する場合から考えていきましょう。
これは不良セクタが原因です。
本来ならそこに存在していたデータの欠片が失われている状態です。
その該当ファイルが、たまたまその場所が未使用なら影響はありません。
ところがそのセクタが使用済みだった場合はその情報が失われます。
ファイル自体に影響が生じてしまい開かなくなるといった症状が出始めるのです。
この場合の修復は二通りです。まずは損傷個所を失われたものとして再適用させる手法です。
もう一つが損傷個所をもともとのデータとして融合させる手法です。
いずれも開くようになり、損傷がなかった部分のデータは戻ってきます。
内部が失われた部分について、一つずつ最も良い方を選択しながら生きている他のデータが参照できるように修復しております。
ファイル修復:壊れている要因が「外部」に存在する場合
復旧したファイルが壊れている原因が外部に存在した場合。
データ自体はドライブ内部に残っているのですが、復旧処理のときに重要な情報が不足して正常に辿れなかった場合です。
ファイルシステムは、情報を読み書き保管するときは必ず一意に定まるように書き込みます。
ところがそれは、ファイルシステムが正常な場合に限ります。
データ復旧を必要とした時点で重要な場所が損傷しているわけですから、正常に復元されずに壊れた状態で復旧される状況は想定内です。
そのような状況からどのように修復するのか。これには、やり方があります。
ファイルの位置などから、近くなどに「ちょうど噛み合うように落ちている場合」を探索します。
「頻度あいまい検索」などでよく対応する手法で予想を立てながら、噛み合う情報を選出してもう一度組み直すことで高い修復率を確保しております。
不良セクタの対処方法
不良セクタが「200」「1200」「34561」で発生している場合を考えてみます。
固定化されている場合、基本的にこれらのセクタの位置が「どこに存在するのか」を判断いたします。
次にファイルシステムを確認いたします。
そしてこれらが「MFT」と呼ばれる「マスターファイルテーブル」に多く発生している点をつきとめます。
そこでこの「マスターファイルテーブル」の位置は「BPB」と呼ばれるセクタから「一手」で判明できます。
そこを「区間」に設定してこのような不良セクタが存在するとみるスキャン方法で「MFT」全区間をスキャンします。
ところで「MFT」の必要性です。
MFTには「ファイル名」「ファイルまでの位置」「実ファイルの断片化性」が含まれ「必須(重要)」です。
そのため「避ける」という選択肢はありません。あらゆる技術を駆使して、必ずスキャンする場所となっております。
逆にその不良セクタが「インデックスバッファ」だった場合です。
この「インデックスバッファ」はファイルシステムへのアクセスの手数を減らすためのインデックスです。
これにより「ランダムアクセスが実現」できているのですがデータ復旧では優先度は低いためここに不良セクタが一つでも存在する場合は「避ける」仕組みです。
このように、必要なセクタ・そうではないセクタ。それらを区別してスキャンする方法となっております。

