削除したパーティションを簡単に復活する方法

●注意●
 ここで示す操作は上級者向けのものです。初心者向けではありません。ここで書かれた内容を理解できない場合は、絶対に操作しないでください。間違えると取り返しのつかない結果になる恐れがあります。


 OSあるいはデータの入ったハードディスクのパーティションを、うっかり削除してしまった。こんな経験はないでしょうか? おそらく誰でも長くPCを使っていると一度や二度は経験しているはずです。しかしWindowsの標準では復活のための機能が用意されていませんので、一旦削除したパーティションを復活させるのは容易ではありません。そこで、削除したパーティションを比較的簡単に復活させる秘伝 (?) を伝授しましょう。

 まず、パーティションを削除するということはどういうことかを理解する必要があります。
 FDISKあるいはディスクの管理画面でパーティションを削除すると、MBR中のパーティションテーブルから、そのパーティションエントリが削除されます。それ以外は一切変更されることはありません。このことは、削除したパーティションを復活させるためには、パーティションテーブルのエントリを復活させればよいことを意味します。
 では、どうやってパーティションエントリを復活させたらよいのでしょうか? ローレベルディスクエディタなどでパーティションテーブルを直接編集するのは正攻法ですが、そのパーティションの開始/終了セクタなどの情報を取得し、16進数で書き込まなければなりませんので、誰にでもできるというものではありません。実はもっと簡単な方法があります。

 その簡単な方法を説明する前に、初心者がよくやる失敗を説明しましょう。パーティションを削除すると、パーティションテーブルのエントリが削除されるのだから、再度パーティションを作成すればパーティションテーブルのエントリが復活するのではないか、というのがそれです。確かに再度パーティションを作成すると、パーティションテーブルのエントリは復活できます。しかし、パーティションの作成コマンドは、同時にパーティションブートセクタをも初期化してしまいます。パーティションブートセクタが初期化されると、そのままではアクセスできなくなります。そして、そのパーティションにアクセスしたときに「フォーマットしますか?」と聞いてくるようになります。ここで、さらに悪いパターンは、その問いに「はい」と答えてしまうことです。そのパーティションがフォーマットされるとどうなるかといいいますと、今度はパーティションブートセクタが再度作成されるのはよいのですが、FATあるいはMFT、それにルートディレクトリまでが初期化されてしまいます。こうなると、もうそのパーティションを完全に復活させることは不可能になります。これは、どんどん深みにはまってしまうパターンです。

 実は、簡単にパーティションを復活させる方法というのは、この初心者が失敗する方法の応用です。つまり、パーティションを再度作成することで、パーティションブートセクタが初期化されるならば、あらかじめパーティションブートセクタをバックアップしておいて、パーティションの再作成後に、バックアップしたパーティションブートセクタをリストアすれば、すべて元どおりになる、というのがこのアイディアです。

 では具体的な方法を説明しましょう。
 まずパーティションブートセクタのバックアップ方法ですが、復活したいパーティションがHDDの先頭にあるプライマリパーティション (基本区画) であれば、そのHDDの先頭から64番目のセクタを1セクタ (512 バイト) 分バックアップすればよいのです。
 HDDの先頭でないプライマリパーティションやロジカルパーティション (論理区画) の場合は、パーティションブートセクタのアドレスを計算しなければならず、あまり簡単ではありません。また、複数のパーティションを同時に削除してしまった場合も、この方法では正確なパーティションを作成することができませんので、手動でパーティションテーブルを編集する必要があります。パーティションブートセクタの位置を見つける方法や、手動でのパーティションテーブルの編集方法については、「データを残したまま、ダイナミックディスクをベーシックディスクに変換する方法」を参照してください。
 バックアップツールとしては、Windows 2000/XP/2003のCD-ROMに収録されているDiskProbeが利用できます。Windows NT 4.0ではリソースキットに収録されています。使い方については「Disk Probeの使い方」を参照してください。

1) 復活したいパーティションのあるHDDをWindows NT/2000/XP/2003/Vista/2008/7が起動できるPCに接続し、Windowsを起動します。
2) DiskProbeを起動し、[Drives] - [Physical Drive...] で、復活したいパーティションのあるドライブをダブルクリックし、[Set Active] ボタン、[OK] ボタンの順にクリックします。
3) [Sectors] - [Read] をクリックし、[Starting Sector] に63を入力し、[Read] ボタンをクリックします。
4) 画面にパーティションブートセクタが表示されるので、[File] - [Save As...] をクリックして、適当な場所に、適当な名前を付けて保存します (拡張子は DSK が自動的に付きます)。
5) ディスクの管理画面で、削除したパーティションと同じサイズ・場所にパーティションを作成します。
6) 再度DiskProbeを起動し、[Drives] - [Physical Drive...] で、復活したいパーティションのあるドライブをダブルクリックし、[Read Only] のチェックを外してから、[Set Active] ボタン、[OK] ボタンの順にクリックします。
7) [File] - [Open File...] をクリックし、先ほどバックアップしたファイルを読み込みます。
8) 画面にバックアップしたパーティションブートセクタが表示されますので、[Sectors] - [Write] をクリックし、[Starting sector to write data] に63と入力し、[Write it] ボタンをクリックします。
  警告に対し [はい] と答えると、パーティションブートセクタがリストアされます。
9) これでパーティションが復活できました。より完全を期すためには、パーティションテーブルのシステムIDフィールドに正しいシステムIDを書き込むとよいのですが、無理にシステムIDを修正しなくても動作に問題はありませんので、その具体的な方法は省略します。「マルチブートのすべて − その2 実践編 − Windows 2000のパーティションがFATの場合 その1」を参照してください。