物理パーティションを使った Windows 2000 インストール

ポータブルハードディスクに物理的にパーティション*1を切り、そこに VMware workstation 4.5.2 を使って Windows 2000 をインストールしたのですが、あとでうっかりパーティションテーブルを触って*2起動しなくなってしまいました。数日ほど苦労してしまったので、ここで復旧方法を書いておきます。順番が違うとダメなので、以下の通りに試してください。ただしお約束ですが、うまくいかなくても当方では責任を負いかねます。

  1. まず、思い切って VMware 上で仮想ディスクを削除します。物理パーティションが残っていれば、たぶん大丈夫です。これが必要なのは、一度間違ったパーティションテーブルで仮想ディスクを作ってしまうと、あとで物理的にパーティションテーブルを修正しても反映されないからです*3。仮想ディスクを作ると *.vmdk と *-pt.vmdk というファイルができますが、前者にはパーティションの仮想ディスクの使い方と論理情報が書き込まれ、後者には物理パーティションには書き込まない(書き込めない)ブートブロック等の情報が補完的に書き込まれます。
  2. ホスト OS である Windows の論理ディスクマネージャとやらを使い、Windows をインストールしたパーティションをアクティブにします。Windows は、アクティブでないパーティションからはブートできません。(参考: http://support.microsoft.com/kb/228004/JA/
  3. VMware 上で仮想ディスクを作り直します。ディスク全体でなく、Windows をインストールした当該パーティションだけを選択します。
  4. VMware 上で、インストール CD-ROM から起動します。回復コンソールを起動します。
  5. 目的の Windows インストール「1 C:\WINNT」などを選び、administrator のパスワードを入力してログインします。
  6. map コマンドで、パーティションを表示します。
  7. fixmbr \device\diskdrive0 (正確なところは忘れた。上記 map コマンドの出力を見てください。あと、http://support.microsoft.com/kb/229716/ も参考に。)でブートブロックにある MBR を修復します。
  8. 一応、念のために fixboot c: として(これも、map コマンドの出力を参考に。)ブートローダーを修復しておきます。
  9. 最後に CD-ROM を抜いて Windows を起動すれば、ちゃんと起動するはずです。

*1:先頭パーティションでないところがポイント。

*2:実際にエリアを切り直した訳ではなく、アクティブパーティションを変えてしまった。

*3:と思います。