「TestDisk」を使用する際、一番気になるのが、
スキャンした結果の中から、どのパーティションを復元すべきなのかということです。

頭の中では、「Dドライブ」とか、「○○っていうファイルのあったパーティション」とか、
イメージとしてはわかっているんですが、
それを実際に「TestDisk」の「Deeper Search」の結果から選べと言われると、
もうすでにわけがわからなかったりします。

そんな「TestDisk」のスキャン結果の中から、復元すべきパーティションを特定する方法を説明していきます。

不必要な選択肢を増やさない

「Deeper Search」の結果です。
あやしいのも含めて、パーティション候補がたくさん検出されています。

個人的には、なんでもかんでも「Deeper Search」をかけてしまうと、
無駄に多くのパーティションが検出されてしまうので、あまりいい方法だとは思いません。
「Deeper Search」は、あくまでも「Quick Search」でパーティションが見つからなかった場合に、
文字通り “より深く” 調べるための方法です。
「Quick Search」で目的のパーティションが見つかった場合は、
そこでパーティションテーブルを書き換えて終了したほうがいい
です。
以降の「Deeper Search」は、ゴミを見つけるだけの無駄な作業になってしまいます。

さて、本題です。
「Deeper Search」で検出された数多くのパーティション候補の中から、
復元すべきパーティションを特定する方法ですが、
大きく3つの手がかりがあります。

以下、それぞれについて説明していきます。

「Start」から「End」までの範囲

基本、かつ一番重要な手がかりです。
パーティションの領域が、重なって存在することはありえません
また、パーティションは、通常隙間なく連続して作られているはずです。

逆に、私の例のように、特殊なパーティションの切り方をしている場合は、
まず意図的と考えて間違いないですから、
本人がどういう切り方をしてあったか、憶えていると思います。

各パーティションの「Start」「End」のところには、数字が3つずつ記載されています。
それぞれシリンダ(C)ヘッド(H)セクタ(S)を表しています。

ここで、CHSについて説明します。

Cylinder

シリンダとは
ハードディスク内にある複数のディスクを、筒状に縦断したものです。
木の年輪ようなイメージです。

Head

ヘッドとは文字通りですが、ディスクの読み書きに使われる磁気ヘッドです。
ハードディスク内のヘッドは1つじゃないですよね。
ディスクが複数枚ありますし、1枚のディスクでも表裏で2つのヘッドが必要になります。

Sector

セクタとはディスク上の最小単位です。
1枚のディスク上に放射状、同心円状に線を引き、その1つのマス目がセクタにあたります。
クモの巣の1つのマス目みたいな感じです。
螺旋じゃなくて、同心円なのでちょっと違いますが。
通常1セクタ=512バイトです。

C、H、Sの順に、上位から下位の単位という位置付けです。
○番目のシリンダの、○番目のヘッドの、○番目のセクタ、ということがわかれば、
ハードディスク内の唯一の位置が指定できるというわけです。

実は現在使用されているハードディスクでは、物理的な値とは一致しなくなりましたが、
便宜上そういうものだと思っておいてください。

「TestDisk」を扱ううえで、これらの数値は重要ですから、
なんとなくでいいので、意味を把握しておいてください。

以上のことをふまえたうえで、もう一度「Deeper Search」の結果を見てみます。
「Start」から「End」までの範囲に注目してください。
範囲が重複しているパーティションがいくつもありますよね。
これらが同時に存在することはありえないので、選択肢は自然と限られてきます。

ちなみに、この画像のように範囲を重複させるような設定をすると、
「Structure: Bad.」と、怒られます。
「ありえねー。」ということです。

ファイル一覧の取得

「Deeper Search」の結果から、任意のパーティションを選んだ状態で「P」キーを押すと、
ファイル一覧が表示されます。

ここから、欲しいデータのあるパーティションなのかどうか、判断することができます。
日本語のファイル名は文字化けしてしまうので、つらいところですが・・・

不正なパーティションだったり、ファイルシステムが破損しているパーティションでは、
ファイルを確認することができません。
このようなパーティションは、復元対象として間違っているか、
もしくは、PBRが正しくない可能性があります。

シリンダ境界

ハードディスクのパーティションは、シリンダ境界で区切られています。
多分、きりがいいからです。

従って、上でも書いたCHSの値は、「x 0 1」で始まるはずなんです。
先頭のパーティションなら、「0 0 1」のはずですね。※セクタだけ0ではなく1から始まります。
でも、「0 0 1」にはMBRがあるので、「0 1 1」から始まります

パーティションの始まりに「x 0 1」が使えないときは、
「x 1 1」、つまりヘッドの替わり目から始まります

多分、きりがいいからです。

早い話が、

先頭のパーティション 「0 1 1」から始まる
2番目以降のパーティション 「x 0 1」から始まる
論理ドライブ 「x 1 1」から始まる
※論理ドライブの格納されている拡張パーティションブートレコードが「x 0 1」にあるため。

ということです。
このルールにあてはまらないパーティションは、復元対象から外します。

ただし、例外があります
Vistaで新しいパーティションシステムを導入したため、
Vista以降で作成したパーティションには、上記ルールはあてはまりません
また、Windows標準の機能以外の方法でパーティションを操作した場合も、該当しなくなることがあります。
このような理由から、最近では、シリンダ境界ルールがあてはまらないケースが増えてきているかもしれません

まとめ

以上、これらの手がかりをもって、復元すべきパーティションを特定していきます。

「TestDisk」の使い方自体は簡単だと思いますが、やってる内容はちょっと難しいかもしれません。
できるだけ簡単に説明しようとしてるんですけど、なかなか説明するのも難しいです。
習うより慣れろで、実際に使ってみるのが一番わかりやすいのかもしれません。

「TestDisk」の実際の使い方については、下記ページにて。

「TestDisk」の使い方