日々馬鹿日記2005 Ver.1.01b

2014/9/20に はてなダイヤリー から移行しました。1.01a→http://d.hatena.ne.jp/e3uematsu/

Vista修復

09/5/17一部追記
先週、XPの調子が悪くなったので、XPを再インストールした。当然、Vista起動しなくなる。
で、VistaとXPのデュアルブート環境になんとか戻せた。いろいろなサイトで調べたが、パターンみたいなものが分かってきた。

XPを修復セットアップもしくは再インストールしたためにVistaが起動しなくなった場合の修復法
※必ず成功するとは限りません。あくまでも自己責任と言うことで。
またコマンドラインをコピペして使う場合、「¥」は小文字に直してください。

1.VistaのCD(もしくはDVD)から起動し修復セットアップを呼び出し「スタートアップの修復」を実行する。修復セットアップを呼び出した地点で勝手に「スタートアップの修復」を行いますか? と出た場合は「修復する」を押す。1回やっても再起動しない場合は2〜3回繰り返してみる(「修復が終了しました」と表示が出ることを確認する。勝手に再起動した場合はもう一度やり直してみる)。「修復が終了しました」が表示された後に再起動させてもVistaが起動しない場合は、再びコマンドプロンプトを出しbootrec /fixbootbootrec /fixmbrを試してみる。詳しくはこちらを参照。
ここでブートメニューが表示されれば修復は終了。ブートメニューが表示されない場合は、まだ修復作業がある。
XPがある環境でVistaをインストールした場合、新しいブートマネージャがXPの入ってるドライブにインストールされ、¥bootという隠しフォルダで収納されている。これがないか壊れている場合、ブートマネージャを再構築しないといけないという。

2.コマンドプロンプトを出し(XP、Vistaどちらでも可)、次のコマンドを実行する
Q:¥boot¥Bootsect.exe -NT60 All
QはVistaのCD(もしくはDVD)が入ったドライブで利用環境に応じて読み替えてほしい。
(こちらも参照)
これでブートマネージャが再構築されるはずである。Vistaが起動したものの、こんどはXPが起動しなくなった場合は3へ

3.Vistaを起動し、コマンドプロンプトを出す。また、この地点でXPがインストールされているドライブを確認する。
次のコマンドを順に実行する
Bcdedit /create {legacy} /d "Windows XP"
Windows XP はブートマネージャ上で表示される名前で、わかりやすければ適当に付けてよい。ただし日本語は文字化けするので控えること

Bcdedit /set {legacy} device partition=d:
↑一番最後にあるのは、Vistaを起動した地点でXPがインストールされているドライブ名。
Bcdedit /set {legacy} path ¥ntldr

Bcdedit /displayorder {legacy} /addlast
↑ブートマネージャ上にXPの情報を追記する。
(Microsoft発表のやりかたから抜粋)
4.bcdedit.exe を起動し、「Windows ブート マネージャ」の「displayorder」に{legacy}があることを確認する。
5.再起動し、ブートマネージャ上に表示されていることを確認する。

以下おまけ
defaultのOSを変える。
bcdedit /default {xxx}
{xxx}はdefaultにしたいOSの識別子 {legacy}とか
ブートマネージャの表示時間を変える
bcdedit /timeout xx
xxは表示時間。秒単位で
OSの表示順序を変える(これを変えてもdefaultのOSは変わらない)
bcdedit.exe /display {xxx} {xxx} …
{xxx}はメニューに表示するOSの識別子を表示させたい順に入力


Vistaの早期プレビュー版が来てインストールした直後は新しいブートマネージャの使い方が分からず「なんじゃこりゃぁ」な状態で半分途方に暮れてたが、時間がたつとこんなに修復手段が増えるとは。修復手段を公開した先人たちに感謝ですな。