「TestDisk」は、ブートセクタの修復に関して非常に優れたツールです。
MBRのみならず、PBRも修復することができます。

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

従って、PBRの修復というのは一般に困難な作業になることが多いんですが、
「TestDisk」はそれを簡単に実現してくれます。

パーティションを復元するために重要な2つのセクタ

パーティションに関する情報は、どこかのファイルに書かれているわけではありません。
基本的に、ブートセクタという1つのセクタに書き込まれています。※GPTは例外として。

そのブートセクタにも大きく2つの種類があり、
ディスクの先頭セクタであるMBR(マスターブートレコード)と、
パーティションの先頭セクタであるPBR(パーティションブートレコード)があります。
これら2つのセクタを、両方とも正常な状態にしてはじめて、
パーティションを認識することができるようになる
わけです。

「TestDisk」では、MBR、PBR共に修復することが可能です。
すばらしい。

「TestDisk」を使ったPBR操作

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

「TestDisk」の使い方

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

まず、「TestDisk」のメインメニューにおいて、「Advanced」を選択します。
続けて、修復対象のパーティションを上下カーソルキーで選び、「Boot」を選択します。

ここから、選択したパーティションの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」という状態。
そこで問題が発生し、バックアップが「Status: OK」だからといってPBRをバックアップで上書きしても、
パーティションは認識されません。
バックアップされているPBRの内容が、現在のパーティションとは異なるからです。

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

「Rebuild BS」について

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

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

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

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

ブートセクタ、つまりPBRも「Status: OK」となりました。

これで、もうこのメニューを操作する必要はなくなったので、「Quit」を選択します。

再起動を求めるメッセージが出てきて、終了です。
実際に再起動して、パーティションを確認してみましょう。

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

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

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

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

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

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

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

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

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

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

いずれかだと思います。