「TestDisk」での復旧パーティションの選び方

「TestDisk」実用上の問題

「TestDisk」使用中、最も重要なのが、
検索した結果の中から、どのパーティションを復旧するかです。

Windowsで一般的に用いられる「ディスクの管理」等とは違い、
「TestDisk」では削除して一部上書きしたものも含め、新旧すべてのパーティションが表示されます
その中から必要なパーティションを見極め、それぞれに適切な設定をするのは、
簡単なことではありません。

ここでは、わかりにくい「TestDisk」の検索結果の中から、
復旧すべきパーティションを特定する方法を説明していきます。

「Deeper Search」を実行しない

これ、基本的なことですが、かなり重要です。
「Deeper Search」は、必須の作業ではありません

Deeper Search - TestDisk

ところが、「Quick Search」完了時に「Deeper Search」が選択された状態になるので、
必要ないのに「Deeper Search」を実行してしまっている人が多いと思われます。

「Deeper Search」の結果 - TestDisk

「Deeper Search」を実行すると、ディスクの履歴によっては数多くのパーティション候補が検出されます。
さらに、「Deeper Search」では、パーティションの領域が重複するのを避けるため、
検索結果で削除扱いになるパーティションが増えます。
このため、「Quick Search」の結果よりも、「Deeper Search」の結果のほうがわかりにくくなります

復旧対象のパーティションが見つからない場合は、もちろん「Deeper Search」を実行しなければなりませんが、
何でもかんでも「Deeper Search」してしまうと、不要なパーティションが多く検出されてしまいます。
不必要な選択肢は増やさないほうがいいです。

「Quick Search」で目的のパーティションが見つかった場合は、
そこでパーティションテーブルを書き換えて終了すべき
です。
「Deeper Search」を実行しても、ゴミを見つけるだけの無駄な作業に終わります。

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

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

逆に、ここで挙げた事例のように、特殊なパーティションの分け方をしている場合は、
まず意図的と考えて間違いないですから、
どういうパーティションを設定してあったか、本人が覚えていると思います。

「TestDisk」の表示は、MBRディスクかGPTディスクかによって変わります。

MBRディスクの場合

MBRディスクの場合は、
「TestDisk」のパーティションテーブル種別の選択において、「Intel」を選択します。

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

Cylinder

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

ヘッドは文字通り、ディスクの読み書きに使われる磁気ヘッドです。
ハードディスク内のヘッドは、1つではありません。
プラッタが複数枚ありますし、1枚のプラッタでも表裏で2つのヘッドが必要です。

現在のハードディスクでは、便宜上255のヘッドが設定されているものがほとんどです。
つまり、物理的ヘッド数と論理的ヘッド数が一致しませんが、
CHS自体が古い仕組みなので、つじつまを合わせるためにこうなっています。

Sector

セクタは、ディスク上の最小単位です。
1枚のプラッタ上に放射状、同心円状に線を引き、その1つのマス目がセクタにあたります。
基本的に、1セクタ=512バイトです。
少なくとも、論理的には。

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

GPTディスクの場合

GPTディスクの場合は、
「TestDisk」のパーティションテーブル種別の選択において、「EFI GPT」を選択します。

GPTディスクの領域は、LBAで表示されます。
LBAは通し番号なので、MBRディスクのCHSよりも直感的にわかりやすいと思います。
数字も1つしかありませんし。

LBAで「33」まではGPTに使われているので、
少なくとも、先頭のパーティションは「34」以降から始まります。
ただし、必ずしも「34」からユーザーのデータ領域が始まるわけではありません。
ユーザーがデータを保存できるパーティションは、「TestDisk」上で「MS Data」と表示されますが、
Windowsでディスクの初期化を行うと、その前に「MS Reserved」パーティションが作られたりしますので。

GPTディスクのパーティションの自由度は高いですが、
逆に言えば、MBRディスクほど領域が規則的ではありません。

「Deeper Search」の結果 - TestDisk

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

Structure: Bad. - TestDisk

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

Invalid partition structure. - TestDisk

仮に、「Structure: Bad.」の状態で「Enter」キーを押して先へ進めても、
無効なパーティション構造だと表示されて終了します。

ファイル一覧の表示

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

ファイル一覧表示 - TestDisk

ここから、欲しいデータのあるパーティションなのかどうか、判断することができます。

Can't open filesystem. Filesystem seems damaged. - TestDisk

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

シリンダ境界

これに関しては、主に「Windows XP」以前の環境が該当します。
というのも、「Windows Vista」でシリンダ境界ルールを無視するようになったからです。
従って、Vista以降で作成したパーティションには、以下の内容はあてはまりません

ハードディスクのパーティションは、シリンダ境界で区切られています
従って、上で書いた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」から始まる
論理ドライブ(Logical) 「x 1 1」から始まる
※論理ドライブを格納している拡張ブートレコード(EBR)が「x 0 1」にあるため。

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

論理ドライブ - TestDisk

特に、拡張パーティション(Extended)論理ドライブ(Logical)は構造が特殊なので、注意が必要です。