って時の対策方法を先日まとめたので保存しておく.
先ずWindows 7からブート出来るようにする.
bootsect /nt60 sys
と入力して[Enter]キー押下.
- コマンドラインで「exit」と入力して[Enter]キー押下か,コマンドプロンプトウインドウの「×」ボタンクリックでコマンドプロンプト終了
- 「Windowsのインストール」ってウィンドウの「×」ボタン押下で「インストールを取り消しますか?」ってダイアログが表示されるので「はい(Y)」ボタン押下して終了する.
再起動してきた時にはWin7がブートする筈.
※WinXPインストールはしたけど滅多に使わないから別にデュアルブート環境構築しなくていいわ,って人はWinXP起動させたい時に都度上記と同様の手順で
bootsect /nt52 sys
を実行すれ.bootsectコマンドはブートパーティションに異なるブートローダがある場合どっちを実行するか設定するコマンドで,パラメータ「nt52」がWinXPのntldrとか使ったブートローダを有効に,「nt60」がVista以降のbootmgr使うブートローダを有効にしてるだけ.
※win7のインストールディスクから起動して最初に表示される「Windowsのインストール」ウィンドウ(言語やキーボードなどの設定を選択する画面)で「次へ(N)」ボタンをクリックすると表示される「今すぐインストール」って画面の下の方に「コンピュータの修復をする」って項目をクリックすると「システム回復オプション」なるものが表示されるが,OS選択する画面を次へで飛ばした先に表示される項目の中で「コマンドプロンプト」は上記で[Shift]+[F10]押下するのと同様,「スタートアップ修復」を選択すると「bootsect /nt60 sys」と同様の操作を自動でするみたいなので,これらを選択しても良い.
Win7とWinXPをデュアルブート出来るように設定する.
- Win7が起動するようになったらスタートメニューからコントロールパネルを起動.
- コントロールパネルから「管理ツール>コンピューターの管理>記憶域>ディスクの管理(ローカル)」を順にクリック.
- 「ディスクの管理」画面でドライブレター(C;とかD;とか)の付いてない「システムで予約済み」ボリュームにドライブレターを添付する.
- 項目「システムで予約済み」を右クリック>ドライブ文字とパスの変更
- 「追加」>「OK」
- 管理者モードでコマンドプロンプトを起動
- スタート>すべてのプログラム>アクセサリ
- 「コマンド プロンプト」右クリック>管理者として実行
- 「はい」
- 以下コマンドライン操作
「システムで予約済み」にドライブレターを付けたドライブに移動
f:(<実際には設定したドライブレターを入力)
「ntldr」,「boot.ini」,「ntdetect.com」の属性を変更
attrib -a -s -h -r ファイル名
※このフォルダに有るファイルは全て非表示設定になってるのでdirコマンドでも表示されない. attribコマンドをパラメータ無しで実行すれば一覧が表示される.
属性変更したら上記3つのファイルがdirコマンドで普通に表示される事を確認.
此処まで終わったら一旦コマンドプロンプトを終了して上記で「システムで予約済み」パーティションに付けたコマンドラインを削除しておく(必須ではない).「ntldr」,「boot.ini」,「ntdetect.com」の属性変更はWinXP上で行っても良い(但しこれより下の作業はWinXPでは出来ないのでOSの切り替えが煩雑になる).その場合WinXP上では「システムで予約済み」パーティションにドライブレターが付与されているので「ディスクの管理」でドライブレター割り当てる作業は不要となる.WinXPでは「C:」が割り当てられている筈.
- 再度管理者モードでコマンドプロンプトを起動し,以下のコマンドを順に実行.
bcdedit /create {ntldr} /d "Windows XP Professional"
※WinXPをブートメニューに登録する為の項目を生成.「/d」以下の「"」で囲まれた文字列はブートメニューで表示される名称だからなんでも良い.
bcdedit /displayorder {ntldr} {current}
※上記で作成した項目をブートメニューに登録.ちなみに{current}はWin7の項目.
- ここまで済んだらオプション付けずにbcdeditを実行して「Windows レガシ OS ローダー」として{ntldr}が登録されている事を確認.しなくても良いけど.
bcdedit /set {ntldr} device "partition=\device\HarddiskVolume1"
↑「システムで予約済み」に付けたドライブレターを設定.「システムで予約済み」パーティションのドライブレター削除してない時は"partition=f:"とかで良い(「f:」は例なので自分が付けたドライブレターに読み替える.
bcdedit /set {ntldr} path "\ntldr"
※「bcdedit /set」でやってる事はブートメニューに追加したWinXP用のブートローダ{ntldr}にファイルの場所などの情報を付与している.
- 再起動したらブートメニューが表示されるのでOSデュアルブートし放題!