デュアルブート環境のブート情報が変わるために起こるもので、
Windows VISTAをインストール後、Windows XPの新規インストールなどをしたら、
VISTAの起動が出来なくなる場合の対策方法のメモ。
Windows7 でも同様の操作で対策できます。
https://www.nekoprint.jp/cgi-bin/nekobeta/archives/9.html
※まず私の環境は上記のような環境ではなくてさらに特殊で、
2000→XP→Vista→Xp→2000→Vista→2000… てな感じでたくさん入っている。
またXP(2000)→Vista→XP(2000)っていう環境でも同様だ。
[boot loader]
timeout=10
default=multi(0)disk(0)rdisk(0)partition(3)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(3)\WINDOWS="Microsoft Windows XP Professional" /fastdetect /noexecute=optin
multi(0)disk(0)rdisk(2)partition(1)\WINNT="Microsoft Windows 2000 Professional V3" /fastdetect
multi(0)disk(0)rdisk(1)partition(1)\WINDOWS="Microsoft Windows XP Professional V2" /noexecute=optin /fastdetect
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows 2000 Professional V2" /fastdetect
multi(0)disk(0)rdisk(0)partition(1)\WINNT="Microsoft Windows 2000 Professional" /fastdetect
私の使用する1つのPCにこんだけの環境があって、さらにVistaがある。
そんな環境のときの対策方法は以下でよい。
----------------------------------------------------
VistaのDVDを挿入し、PC電源投入時にDVDから起動させて
[スタートアップ修復]をすれば一番確実。
----------------------------------------------------
…他の手順としては下の①~⑦だけですむ。ただこれはお勧めしない。
上記のような環境の場合、無意味だと思うので…
そして本題の
最初のインストールがVista→2000 といったインストール順や、
最初のインストールがVista→XP といった順番なら、
下に書いてある①~⑥、⑧~⑪までを続けて実行する。
ただしメーカー製は注意が必要だ。
★原因:
起動に必要なファイルのうち、[BOOTSECT]+[NTLDR]or[bootmgr]
という3つのファイルが問題で、ブート情報が変わると、
これらのファイル依存関係が変わるために起こるものだ。
通常はOS発売順から行くと、
インストールする順番は、2000-XP-2003-VISTA-2008だが、
このうち、2000-XP-2003まではブートに使用しているファイルは
[NTLDR]+[BOOTSECT]なのでどのバージョンのOSからインストールしても
問題なくデュアルブートできるのだが、
VISTA以降は[NTLDR]に代わり[Bootmgr]ファイルを使用することになった。
そこへ何らかの事情でXPの再インストールなどをすると、
それまで[Bootmgr]を使用しての起動だったものが、こんどは
VISTAとは互換性のない[NTLDR]に起動情報が置き換えられてしまい、
VISTAが起動できなくなるわけだ。……合ってるのかな?
そしてこの起動情報(ブート情報)を修復すると良いというわけである。
★対策方法:
① XP/2000/2003のいづれかを起動する。
② DVDドライブにVISTAのディスクを挿入する。
※DVDドライブのパスは [Rドライブ] とする。
③ コマンドプロンプトを起動する。
④ 以下を入力する。
C:\Documents And Settings\USERNAME>R:
※これでRドライブへ移動する。
R:\> ←こんな表示になる。
⑤ 以下を入力する。
R:\>cd boot
※これでDVDディスク内のBootフォルダへ移動する。
R:\BOOT>
⑥ 以下を入力する。
R:\BOOT>bootsect /nt60 all
※ブートセクタ情報を書き換えるコマンドライン
⑦ 再起動して確認する。
※ただし再起動の前に以下を確認する。
**********************************************************
[2000(XP)→Vista→2000(XP)修復インストール]や、
[XP→Vista→XP]などのOSが2つだけの"デュアルブート"なら
これでも有効…なんだけどね。
これだけでVISTAも起動するし、XPとか2000とかの旧OSも起動できる。
ただしあくまでもこれはVistaと、もうひとつの
”OSが2つだけの"デュアルブート"ならこれでも有効”ってだけ。
どういう意味かというと例えば、2000Proを1番目にインストールして、
[2000→XP→2003→VISTA→XP]のデュアルブート?トリプル?クワッド?で、
さらにVistaの後に[2000/XP/2003]のいづれかをインストールしていた場合、
①~⑦の対策をやってもVistaと、一番最初に入れたOSしか
起動しなくなるってわけ。それなら最初からVistaのDVDをつかって
スタートアップ修復だけですむ。
まあこんなたくさんのOS混在環境で先に①~⑦をやってしまってたら、
XPのCDから[NTLDR] ファイルだけをCドライブにコピー&ペーストしてやったら
すべてのOSが起動できるようになる。
ただやっぱりコレにも問題がある。
それは起動OS選択画面の文字がすべて英語になるということだ。
まあ、これさえ気にしなければ問題なくインストールした
すべてのOSが起動できるんだが…
しかもこれのタチの悪いのが、
[ntldr][NTDETECT.COM][boot.ini]のバックアップを取っていて、
それを元の位置に復元しても反映されないところかな。
どうにかならないもんかな…?
まあつまり結論として、トリプル以上のOSブートには①~⑥を操作しても
すべて起動できるわけではないから意味がないのである。
**********************************************************
そんなわけで環境しだいで上の①~⑥を実行した後に
⑧~⑪のコマンド操作をしてもエラーが帰ってくるだけ。
だが出来ないことはない。やったところで完全解決はしない。
ここで言うところのインストール順が
Windows Vista(またはWindows 7)-> Windows XP(またはWindows 2000)という順番以外には無意味。
というわけでインストール順がVista→XP(2000)っていう場合の
対策方法 続き――――
※ここでは、Windows 2000 Professionalをインストールすることとします。
⑧ コマンドプロンプトを起動し、以下のコマンドを入力・実行する。
Bcdedit /create {legacy} /d “Windows 2000 Professional の起動”
実行すると、エントリ {ntldr} は正常に作成されました。 ―が表示される。
※またはインストールしたOSの順番で以下のような文章が出ることもある。
指定された作成操作を実行中にエラーが発生しました。
指定されたエントリは既に存在します。
これは既にNTLDRファイルが作成されているということなので
気にせずともよい。
⑨ 以下のコマンドを入力・実行する。
Bcdedit /set {legacy} device boot
⑩ 以下のコマンドを入力・実行する。
Bcdedit /set {legacy} path \ntldr
⑪ 以下のコマンドを入力・実行する。
Bcdedit /displayorder {legacy} /addlast
この操作の途中に上のエラー表示が出てもそのまま続けても問題はない。
⑩・⑪まで正しく終了していたら再起動しても問題はない。
ちなみに、この下の写真はWindows 2000 インストール後、Windows7 をインストールしたときのものである。
-----------------------------------------------------------
-----------------------------------------------------------