みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

ちょっと特殊な Windows でのデュアルブート

ちょっと特殊な Windows でのデュアルブート

お世話になります。

Windows XP、Windows 7 でデュアルブート環境を構築しております。
今やりたい事は bios のブートドライブの優先順位によって

・ XP (ドライブ) を選択したら XP が無条件に立ち上がる
・ 7 (ドライブ) を選択したら 【XP/Win7 のブート選択画面】になる

という事をやりたいのです。

今現在、bios 切り替えによる各 OS の立ち上がりは問題なく、また
bcdedit / bootrec と EasyBCD を駆使して Windows 7 起動時に

7/xp のブート選択画面

までは表示することは出来ました。しかし 7 上でのブート画面で XP を選択
しても、数秒後に再起動になり起動することが出来ません。

Win7 の DVD 起動の修復からコマンドプロンプトを立ち上げ、bootrec の
/rebuildbcd や bcdedit でドライブパスを確認/変更したり、bootsect で
Windos XP には /NT52 、Windows7 には NT60 など色々試しているのですが、
結果が伴いません。


本環境はパーティションを切らずに物理ドライブとして、

HDD 1台目(Primary1 Cドライブ) Windows XP インストール
HDD 2台目(Slave1  Dドライブ) データドライブ
HDD 3台目(Primary2 Eドライブ) Windows 7 インストール
DVD 4台目(Slave2   Fドライブ) CD/DVD

という風に組んでおります。

bios 選択で切り替えて起動できるようにしているので、MBR は C ドライブと
Eドライブに入っていることになります。

このような環境で、Windows7 を起動ドライブにした時に Windows XP を
ブート画面から選択させ起動させる事は物理的に可能でしょうか?

インターネット記事で記載されている一般的?なデュアルブートなら問題なく構築
出来ているのですが、私がやろうとしているデュアルブートの記事が中々見つからず
そもそもこのような環境が構築可能なのかどうか、疑問に持った次第です。


どうぞよろしくお願いします。

投稿日時 - 2010-05-09 15:03:36

QNo.5882862

暇なときに回答ください

質問者が選んだベストアンサー

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」ボタンを押して完了です。

投稿日時 - 2010-05-09 19:27:07

補足

質問を投稿してから、自力で何とか XP のブートファイルをコピーする必要性がある事実に辿り着き、
boot.ini の編集を試行錯誤して行い、つい先ほどデュアルブートすることが出来ました。

10FSR 様のご回答が最も適切だと思いますので、ベストアンサーに選ばせていただきます。

他の方々もありがとうございました。

投稿日時 - 2010-05-09 20:10:40

ANo.4

このQ&Aは役に立ちましたか?

13人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.3

XPの起動ドライブ を Win7を立ち上げた時に 表示される XPのシステムのある ドライブ( C: 以外) に してみては
例えば Win7を立ち上げた時に XPのあるドライブがE: ならば
bcdedit /set {ntldr} device partition=e:
もちろん EasyBCDで変更しても良いと思います。

投稿日時 - 2010-05-09 19:11:49

ANo.2

>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の場合は同様の設定になりません。

投稿日時 - 2010-05-09 18:12:39

> そもそもこのような環境が構築可能なのかどうか、

決して特殊ではなく一般的な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が使いにくいことが実感できます)

投稿日時 - 2010-05-09 15:47:24

補足

ご回答ありがとうございます。

方法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で試させてただきます。

ご回答ありがとうございました。

投稿日時 - 2010-05-09 16:13:01

お礼

すいません、記入間違いをしていました。
OKWave って文言修正出来ない用ですので、ここに記載させて頂きます。

補足で記入した、

device partition=E:

となっている箇所は

device partition=C:

です。やっていることは partition=C: で、それ以外は同一ですが起動しないのには変わりませんので、
MBR が複数のドライブに存在している場合は、この方法では難しいのかもしれません。

投稿日時 - 2010-05-09 16:32:40

あなたにオススメの質問