[Windows] 7/Vista と XP のデュアル ブート環境構築

最近 Win7 と HDD を買ったので XP とのデュアル ブート環境構築をしたので,
設定とかをまとめておきます.

特に Web で調べてみた方法だけでは,Widows XP を起動しようとしたときに強制再起動されてしまったので,その問題解決についても述べます.

構成

  • HDD1: パーティション 1: Windows 7 のインストーラが勝手に作る 100 MB の領域
  • HDD1: パーティション 2: Windows 7
  • HDD1: パーティション 3: データ
  • HDD2: パーティション 1: Widnows XP
  • HDD2: パーティション 2: データ

です.

Windows XPWindows 7 を異なる HDD に単独でインストールしています.

Windos 7 用ブート マネージャの設定

まず Widows 7 用のブート マネージャの設定を行います.

いろんなところにも書かれているように以下の用にコマンドを実行します.

コマンドプロンプトは管理者として実行する必要があります.

> bcdedit /create {ntldr} /d "Windows XP"
> bcdedit /set {ntldr} device partition=C:
> bcdedit /set {ntldr} path \ntldr
> bcdedit /displayorder {ntldr} -addlast

"partition=C:" の "C:" は必ず "C:" である必要があるみたいです.

Windows 7 を D ドライブとかにインストールしていても,たぶん "C:" じゃないとダメです.

Windows XP 用ブート ローダの設定

まず,Windows 7 のインストーラが勝手に作る 100 MB のパーティション と Windows XP がインストールされているパーティションを操作できるようにします.
(BIOS の設定を変えたり,HDD の接続順を変えて Windows XP を起動すればいいと思います.)

100 MB のパーティション (bootmgr のある場所) に XP の C ドライブ直下にある,ntldr, NTDETECT.COM, bootfont.bin, boot.ini をコピーします.

bootmgr のある場所以外の場所に ntldr などのファイルを置いて,ブート マネージャの設定をそれに合わせて変更しても,Windows XP は起動できないので注意してください.


boot.ini を以下の用に変更します.

[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(1)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(1)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect

rdisk の () の中の値を変更しています.

起動

以上で設定は完了です.

あとは,先頭の HDD を Windows 7 のものにして起動すれば Windows 7 と Windows XP とのデュアル ブートができると思います.

まとめ

自分の場合,今 Web で簡単に調べることができる情報だけでは Windows 7 と Windows XP とのデュアル ブートはできませんでした.

その対策として,bootmgr のある場所に ntldr をおくことで問題は解決されました.

人によって Windows 7 や Widows XP のインストールされている状況は異なると思いますが,ntldr を bootmgr と同じ場所におくことでデュアル ブート可能になると思います.