« Windows VistaとXPのデュアルブート環境でVistaを削除する | メイン | Windows Vistaは電源を切らない。使わないときはスリープさせる。 »

ブートマネージャの設定を変更してWindows Vistaが起動しなくなったときの対処法

《2006年10月22日》 《カテゴリー:Windows Vista

Windows VistaとXPでデュアルブート環境を構築しているとき、
ブートマネージャでVistaとXPのどちらを起動するか選択できます。
ブートマネージャとデュアルブートについては以下のURLもご参照ください。
http://www.center-left.com/blog/archives/2006/10/windows_vistaxp.html
http://www.center-left.com/blog/archives/2006/10/windows_vistaxp_1.html

このブートマネージャの設定は「システムのプロパティ」から行うわけですが、
次の2つの設定を行うとVistaが起動できなくなってしまいます。
・既定のオペレーティングシステムで「Earlier Version of Windows」を選ぶ
・「オペレーティングシステムの一覧を表示する時間」のチェックを外す

上記の設定を行うとブートマネージャをスキップして、
自動的にXPが起動してしまいます。
そして、XPの「システムのプロパティ」では、
Vistaのブートマネージャの設定ができないため、
Vistaを起動することができなくなってしまうわけです。

bcdeditコマンドでブートマネージャの設定を変更

XPの側からVistaのブートローダーの設定を変更するには、
「bcdedit」コマンドを使用します。
bcdeditで既定のオペレーティングシステムをVistaに変更するわけです。

スタートメニューから「コマンドプロンプト」を開き、
まずは「d:\windows\system32\bcdedit.exe」と入力します。
(最初の「d」はVistaのシステムファイルをインストールしたドライブ名)
するとブートマネージャのエントリが表示されます。
この中で注目すべきなのが「Windowsブートローダー」の識別子です。
20桁以上の英数字が並んでいますが、
これがVistaの識別子です。

次に「d:\windows\system32\bcdedit.exe /default 識別子」と入力します。
これがVistaを既定に設定する命令です。
「この操作を正しく終了しました」と表示されたら、
コマンドプロンプトを終了して再起動します。
これでVistaが起動するようになるはずです。

下の画面は実際の操作ですが、
ここでは「d:\windows\system32」に移動してから、
bcdeditを実行しています。

bcdedit

このあたりの情報はマイクロソフトのサポートデータベースで参照できます。
http://support.microsoft.com/kb/919529/en-us
http://support.microsoft.com/kb/919529/ja (翻訳がめちゃくちゃです)
bcdeditコマンドの詳しい利用方法は掲載されていないので、
「d:\windows\system32\bcdedit /help」としてヘルプを見るか、
Technetの解説を見てください。
http://www.microsoft.com/japan/technet/windowsvista/library/85cd5efe-c349-427c-b035-c2719d4af778.mspx

Vistaではブートのプロセスが変更された

上記のマイクロソフトのサイトにも情報がありますが、
XPとVistaではブートのプロセスに違いがあります。

XPの場合、
・MBRがアクティブな領域のブートセクタを読み出す
・ブートセクタがntldr(NTローダー)を呼び出す
・ntldrがXPのカーネルを起動する

これがVistaではntldrが使われず、
新たに「Boot Configuration Data」という新しいアーキテクチャが採用され、
「Bootmgr.exe」という名前のブートローダーが利用されます。
・MBRがアクティブな領域のブートセクタを読み出す
・ブートセクタがBootmgr.exeを呼び出す
・ブートマネージャを表示するか、既定のVistaをロードする

XPではシステムドライブの「boot.ini」にOSの一覧が入っています。
boot.iniはテキストファイルなので(隠し属性である点に注意)、
メモ帳で開けばどのOSを既定にするか設定できました。
また新しくOSを追加したときなどメモ帳で設定を追加できました。

ところがVistaのBootmgr.exeはboot.iniを使用せず、
「bcd」というバイナリファイルに設定を保存しています。
メモ帳では編集ができず、bcdedit.exeというプログラムで設定します。
(ちなみにXPにもbootcfg.exeというプログラムが存在しました)

Vistaをインストールしている場合、
Bootフォルダの中を見ると分かりますが、
Memtestなどのツールも起動できるように拡張されています。
また、bcdedit.exeを実行すると分かるように構成を細かく記述できます。
さらにEFI(Extensible Firmware Interface)にも対応するようです。

ちなみに、bcdedit.exeはよく分からん、という方には、
「VistaBootPRO」というプログラムがあります。
まだしっかりと試していませんが簡単に設定できるらしいです。
http://www.pro-networks.org/vistabootpro/

投稿者 yasu : 2006年10月22日 17:01

トラックバック

このエントリーのトラックバックURL:
http://www.center-left.com/cgi-bin/Mt-3/mt-tb.cgi/1398


コメント

こんにちは!!似たような件で教えてください
ブートマネジャが最初に出ていたのですが、レストアしたら出なくなりました。一応CドライブにはXP、DドライブにはVISTAが入っているようですが、今まで選択が出来ましたが現在できなくなりました。どこを操作すれば、ブートマネージャが出る様になるか教えていただけませんか?

投稿者 柿本篤弘 : 2008年02月11日 02:06




保存しますか?

(書式を変更するような一部のHTMLタグを使うことができます)