- ベストアンサー
ちょっと特殊なWindowsでのデュアルブート
- Windows XP、Windows 7 でデュアルブート環境を構築しております。 bios のブートドライブの優先順位によって XP が立ち上がるか、Win7 のブート選択画面になるようにしたい。
- 現在、bios 切り替えによる各 OS の立ち上がりは問題ないが、Win7 上でXPを選択しても、数秒後に再起動になり起動できない。試した修復方法も効果がなく困っている。
- Windows XP と Windows 7 を物理ドライブとして構築し、bios 選択で切り替えて起動している。ただし、Windows7 を起動ドライブにした時に Windows XP をブート画面から選択させ起動させることは物理的に可能かどうか疑問に思っている。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
Win7とXPをブートマネージャーに表示させて、起動OSを切り替えるには下記の方法です。 手順は大きく分けて4つの工程を踏みます。 1.Windows 7をインストール時に作成される、100MBの先頭のパーティションの領域にアクセス 出来るように、ドライブ文字を割り当てます。 2.100MBの領域にXPの起動に必要な4つのファイルをコピーします。 3.boot.iniを修正します。 4.ブートマネージャにXPのエントリーを追加します。 Win7がデフォルトで起動できるように、Win7をインストールしたHDDと、XPをインストールしたHDDを接続し、Win7を起動させます。 Win7が起動したら、ディスクの管理でWin7をインストールしたHDDの先頭のパーティションに、100MBのドライブ文字が割り当てられていないパーティションがあります。 このドライブ文字が割り当てられていないパーティションを右クリックして、表示されるメニューの 「ドライブ文字とパスの変更」から適当なドライブ文字を割り当てやり、ドライブにアクセスできる ようにしておきます。 XPをインストールしたドライブのルートにある下記の4つのファイルを、ドライブ文字を割り当てた100MBのドライブにコピーします。 (拡張子、全てのファイルとフォルダ、システムファイルを表示できるようにしておく事) boot.ini bootfont.bin NTDETECT.COM ntldr コピーしたboot.iniファイルを開いて、HDDの構成に合わせARCパスを修正します。 3番目のHDDにXPがインストールされている場合、下記のように2箇所あるrdisk(0)の所をrdisk(2)に修正します。 ARCパスを確認するには、XPの回復コンソールを起動し「map arc」とタイプし「Enter」て確認します。 [boot loader] timeout=30 default=multi(0)disk(0)rdisk(2)partition(1)\WINDOWS [operating systems] multi(0)disk(0)rdisk(2)partition(1)\WINDOWS="Microsoft Windows XP Home Edition" /noexecute=optin /fastdetect EasyBCD 1.7.2を起動して、「Add/Remove Entries」ボタンを押し、「Add an Entry」の「Windows」 タブの「Type」で「Windows NT/2k/xp/2k3]を選択、「Name」にWindows XP Homeなどと名前を入力後、右下の「Add Entry」ボタンを押して完了です。
その他の回答 (3)
- shinh
- ベストアンサー率39% (363/926)
XPの起動ドライブ を Win7を立ち上げた時に 表示される XPのシステムのある ドライブ( C: 以外) に してみては 例えば Win7を立ち上げた時に XPのあるドライブがE: ならば bcdedit /set {ntldr} device partition=e: もちろん EasyBCDで変更しても良いと思います。
- bunjii
- ベストアンサー率43% (3589/8249)
>HDD 1台目(Primary1 Cドライブ) Windows XP インストール >HDD 2台目(Slave1 Dドライブ) データドライブ >HDD 3台目(Primary2 Eドライブ) Windows 7 インストール >DVD 4台目(Slave2 Fドライブ) CD/DVD 1台目選択のときにXPと7の選択とし、3台目選択のとき7の単独起動なら可能です。 Windowsのブートシーケンスとドライブレターの割当の関係で希望通りにはならないともいます。 今の状態では3台目を起動デバイスに選択すると1台目のXPがあるドライブレターはC以外になり起動出来ないはずです。 Windows Vista/7は何処にインストールされていてもドライブレターをCに割り当てられますが、Windows XPの場合は同様の設定になりません。
> そもそもこのような環境が構築可能なのかどうか、 決して特殊ではなく一般的なdualbootですので可能です。 ※OSのbootloaderが存在する「デバイスとパーティション」、「ブートローダ名」を指定すれば目的のOSをbootできる、という一般的な方法です。 方法1:win7のbootmgrでxpのデバイス、パーティション、ブートローダ名を次のようにsetすればいいでしょう。 device partition=c: path \ntldr ※追加質問にあたってはwin7 bcdeditコマンドで出力した結果を、そのまま(脚色や省略しないで)コピーして貼り付けてください。 方法2:win7にgrub4dosをインストールして(インストールといってもただ単にファイルを展開、コピーするだけの作業)grub4dosのbootloaderでxpを起動する。 ※実際にやってみると、この方法でのデュアルブート(マルチブート含む)は簡単で、使いやすく、拡張性があることが解ります。(Windowsのbootloaderが使いにくいことが実感できます)
お礼
すいません、記入間違いをしていました。 OKWave って文言修正出来ない用ですので、ここに記載させて頂きます。 補足で記入した、 device partition=E: となっている箇所は device partition=C: です。やっていることは partition=C: で、それ以外は同一ですが起動しないのには変わりませんので、 MBR が複数のドライブに存在している場合は、この方法では難しいのかもしれません。
補足
ご回答ありがとうございます。 方法1の方はすでに試しており、起動できない事が確認取れております。 また補足で説明するのを忘れていました。 Windows7 回復プロンプト上では HDD1 は C ドライブで Windows XP になり、 HDD3 は E ドライブで Windows 7 になります。 Windows7 が起動すると、 HDD3 は C ドライブで Windows 7(当然ですが) になり、 HDD1 は E ドライブで Windows XP になります。 これらのパスを確認し、 device partition=E: を調整したところ、Windows XP の E ドライブをしている事で xp に 切り替わる動作が行われる感じですが、途中で終了してしまいます。 ( 念のため、Cを含め他のドライブ全て検証すると「見つかりません」エラーになりますね ) bootmgr に関しては熟知しているので、各設定には問題ないかと思います。 bcdedit /create {ntldr} /d "Windows XP" bcdedit /set {ntldr} device partition=e: bcdedit /set {ntldr} path \ntldr bcdedit /displayorder {ntldr} /addlast を行い bcdedit でドライブ設定やパスは確認済みです。 この方法では一筋縄行かない様な気がしており、今回質問させていただきました。 方法2の方は試した事ありません。方法1で出来無い場合、方法2で試させてただきます。 ご回答ありがとうございました。
補足
質問を投稿してから、自力で何とか XP のブートファイルをコピーする必要性がある事実に辿り着き、 boot.ini の編集を試行錯誤して行い、つい先ほどデュアルブートすることが出来ました。 10FSR 様のご回答が最も適切だと思いますので、ベストアンサーに選ばせていただきます。 他の方々もありがとうございました。