「TestDisk」は、現在使われていないものも含めてブートセクタを検索し、
そこに保存されている情報をもとにパーティションテーブルを書き換え、パーティションを復旧します。
従って、パーティションの情報はPBRに依存します

ところが、パーティションに問題がある状況下では、検出されたPBRがすでに上書きされている可能性があります。
この場合、当該PBRの情報は使えません。

PBRに問題があると、そのパーティションにアクセスすることができません。
また、それがアクティブパーティションであった場合、Windowsを起動することもできなくなります。

Boot - TestDisk

「TestDisk」では、PBRを修復することも可能です。
「TestDisk」が自動判別してPBRの修復を試みることもありますが、
ユーザーが判断して、いくつかの操作を手動で行わなければならない場合もあります。

PBRの修復

ここでは、下記ページ内容を理解していることが前提で話を進めます。

「TestDisk」の使い方

入手方法から、基本的な操作手順まで書いてあります。
ただし、これは主にパーティションテーブルの修復に関してまとめたものです。
一方、このページでは、パーティションテーブルの修復だけではパーティションが復旧できない場合について
説明していきます。

Advanced - TestDisk

まず、「TestDisk」のメインメニューにおいて、「Advanced」を選択します。

パーティションの選択 - TestDisk

修復対象のパーティションを上下カーソルキーで選び、「Boot」を選択します。

Boot - TestDisk

ここから、選択したパーティションのPBRに関する操作ができます
PBRの破損が明らかで、それが「TestDisk」にも認識されているときは、
「Analyse」後に「Write」を選択した時点で、この画面が表示されることもあります。

上の画像の例では、ブートセクタは「Status: Bad」、つまり破損していて、
バックアップブートセクタは「Status: OK」、そして双方が一致していないことを示しています。
バックアップブートセクタとは、まんまPBRのコピーで、
NTFSパーティションの場合、各パーティションの最終セクタに存在しています。※参考: Microsoftサポート

ここで、画面の見方について補足しておきます。
「BS」というのは、「Boot Sector」の略、つまり、ブートセクタのことです。
さらに、ここでいうブートセクタとは、PBRのことを指しています。※Microsoftは、PBRのことのみをブートセクタと呼んでいます。

画面上で確認する限り、バックアップブートセクタは「Status: OK」となっています。
バックアップブートセクタは、めったに書き換えられません。
その存在価値は、ブートセクタの復旧のためだけにあると言っても過言ではないです。
従って、これをPBRに書き込んでみます。
「Backup BS」を選択します。

注意点として、PBRが正しくなくても、「TestDisk」は「Status: OK」とみなすことがあります
すると、「TestDisk」は正常終了しますが、復旧には至りません。
ユーザー側でPBRを直接確認して判断する必要があります。「Dump」を選択することで確認できます。

「Status: Bad」と表示される場合は、ほぼ間違いなくPBRに異常があると考えていいですが、
「Status: OK」という表示は、半信半疑で見ていったほうがいいです。

「Status: OK」という表示について

「TestDisk」が表示する「Status: OK」というのは、PBRとしての体が保たれているというだけであって、
その内容が実際のパーティションに適合することを示しているわけではありません

たとえば、各種パーティション編集ツール(イメージングバックアップソフト含む)を使った場合は、
PBRがバックアップと一致しない状態で、問題なく動作している可能性があります。
※つまり、「Sectors are not identical.」だけど「Status: OK」という状態。
そこでPBRに異常が生じ、バックアップが「Status: OK」だからといってバックアップで上書きしても、
パーティションは認識されません。
バックアップされているPBRの内容が、現在のパーティションとは異なるからです。

PBRのバックアップが作られるのは、パーティションをフォーマットした時です。
パーティション編集ツールでは、バックアップブートセクタを無視していることがあるため、
パーティションを変更した覚えがあるなら、特に注意が必要です。

「Rebuild BS」について

PBRが破損し、バックアップも使えない状況になってしまった場合は、
「Rebuild BS」を使ってPBRを再構築します。

ただし、「Rebuild BS」は最終手段です。
新たに作ったデータで上書きする、不可逆な操作だからです。
もし、「Rebuild BS」を使わなければならないとしたら、
なぜそういう状態になっているのか、今一度よく考えるべきかもしれません。

また、「Rebuild BS」で再構築されるのは、ディスクパラメータだけです。
ブートストラップローダに関しては現在値を引き継ぎ、しかも再構築したPBRでバックアップも上書きします。
起動パーティションのPBRに異常がある場合、ブートストラップローダの修復が必要です。
詳細はリンク先ページ参照。

上書き確認 - TestDisk

PBRにバックアップブートセクタを上書きしていいかという、確認画面です。
上書きして問題なければ、「Y」キーを押します。

Status: OK - TestDisk

ブートセクタ、つまりPBRも「Status: OK」となりました。
これで、もうこのメニューを操作する必要はなくなったので、「Quit」を選択します。

再起動、または再接続して、動作確認します。

PBRとディスクジオメトリの関係

PBRに異常があると、「TestDisk」はディスクジオメトリを誤認識することがあります
それは、「TestDisk」実行中にもエラーとなって表示され、
たとえば、「Analyse」中に、

Warning: Bad ending head (CHS and LBA don't match)

というような表示が現れます。※「Bad ending cylinder」、「Bad ending sector」も同類です。
ディスクジオメトリを前提にしたCHSと、無関係なLBAとで、パーティション終了位置が合わなくなるのです。

なぜ、「TestDisk」がディスクジオメトリを誤認識してしまうかというと、
ディスクジオメトリに関する情報が、PBRに保存されているからです。※セクタサイズ、セクタ数/トラック、ヘッド数等。
従って、PBRが破損している場合は、必然的にジオメトリが誤認識される可能性が高くなります。

同様に、以下のような表示がなされる場合もあります。

Warning: Incorrect number of heads/cylinder 255 (NTFS) != 16 (HD)

左側の数値がPBRの情報、右側の数値が「TestDisk」が認識しているもので、
これらが一致しないということです。

「TestDisk」の認識している値が明らかにおかしい場合、これを修正するには、
「TestDisk」メインメニューから「Geometry」を選択し、手動でディスクジオメトリを変更する必要があります。
これらはあくまでも「TestDisk」動作上のパラメータなので、
「Geometry」で値を変更したからといって、ただちにハードディスクに何かが書き込まれるわけではありません。

「TestDisk」が認識しているディスクジオメトリを正しく変更することも必要ですが、
より重要なのは、なぜ「TestDisk」がディスクジオメトリを誤認識してしまうのか、その原因を探ることです。
それはほとんどの場合、

どちらかだと思います。