Windows Vista を使いこなそう!
VistaとXPのマルチブート
WindowsXPとWinsows Vistaのマルチブートの導入・解除時のポイントを解説します.雑誌等に載っている情報を自分の備忘録として纏めた内容です.
※ここではOSのインストールの基本手順やパーティション分割の手順等については解説してません.
- マルチブート環境作成・解除における予備知識
- WindowsXP → Windows Vistaの順でインストールする場合
- Windows Vista → WindowsXPの順でインストールする場合
- Windows Vistaの削除
- WindowsXPの削除
- マルチブートの問題点
マルチブート環境作成・解除における予備知識
《ブートシーケンスについて》
OS起動時は「MBR→ブートセクタ→ブートローダ」の順に情報入力が行われます.
- まずBIOSプログラムによってハードディスクの先頭セクターであるマスターブートレコード(MBR)が読み込まれる.
- 次にアクティブな基本領域(通常C:を含む領域)の先頭セクターであるブートセクタが読み込まれる.
- ブートセクタの記録内容に応じて,対応するブートローダを読み込む.
《ブートローダについて》
ブートローダはブートシーケンスにおいて最初に読み込まれるOS固有のファイルです.
- WindowsXPのブートローダは「NTLDR」
- Windows Vistaのブートローダは「Bootmgr」
- 「Bootmgr」は「NTLDR」を起動できるが,「NTLDR」は「Bootmgr」を起動できない.
→VistaとXPのマルチブート環境ではブートローダとしてVistaのブートローダである「Bootmgr」が起動されなければならない. - ブートローダ(および関連ファイル)は,アクティブな基本領域(通常C:)に存在する.マルチブート等でD:ドライブ,E:ドライブにOSをインストールした場合でもその通り.
《ブートセクタについて》
ブートセクタには,次に読み込むブートローダの所在が記録されています.この内容はOSインストール時に"そのOSのブートローダを読み込むように"書き換えられます.
→マルチブート環境作成の為に複数のOSをインストールした場合,最後にインストールしたOSのブートローダが読み込まれるようになります.
WindowsXP → Windows Vistaの順でインストールする場合
既に第1パーティションにWindowsXPがインストールされており,これから第2パーティションにWindows Vistaをインストールする場合,あまり注意すべき事項はありません.以下のいずれかの方法でWindows Vistaをインストールすれば,自然とマルチブート環境が構築できます.
これは,後からVistaをインストールしたことにより以下の状態にってくれるからです.
- Vistaのブートローダである「Bootmgr」が起動されるようにブートセクタが書き換えられている.
- Vistaインストール時に,先に存在しているXPのブートローダ「NTLDR」を認識し,それも起動できるように「Bootmgr」が設定される.
《補足事項》
Vistaのインストールの仕方で挙動の違いが発生します.認識しておいた方がよいでしょう.
- VistaのインストールDVDより起動してVistaをインストールした場合…
実行しているOS時のドライブレターが「C:ドライブ」になるという挙動を示します.すなわち- XP実行時:第1パーティションがCドライブ,第2パーティションがDドライブ.
- VIsta実行時:第2パーティションがCドライブ,第1パーティションがDドライブ.
- XP上からVistaのインストールを行った場合…
実行OSに関わらず,第1パーティションがCドライブ,第2パーティションがDドライブと認識されます.
※当ページではこちらを意識した図を示しています.
Windows Vista → WindowsXPの順でインストールする場合
この場合,XPインストール後にVistaが起動できなくなります.(⇔無条件にXPが起動し選択する余地が無い)
これは,後からVistaをインストールしたことにより以下の状態になるからです.
- XPのブートローダである「NTLDR」が起動されるようにブートセクタが書き換えられている.
- XPインストール時に,Vistaのブートローダ「Bootmgr」の存在が認識されない.
これまで動いていたVistaが起動できなくなりますが,Vistaのファイルは一切失われていませんので,ご心配は無用です.
ブートに関する情報(ブートセクタ,ブートローダ)を変更してやれば,無事マルチブートをすることができます.
変更の内容は以下の2点.
- Vistaのブートローダである「Bootmgr」が起動されるようにブートセクタを書き換える.
- 「Bootmgr」からXPのブートローダ「NTLDR」を起動できるようにBCDにエントリを追加する.
これらの変更は,コマンドプロンプトからのコマンド入力で行います.
《ブート情報の変更手順》
- XPを起動
- アクセサリのコマンドプロンプトを起動
- DVDドライブ(E:とします)にVISTA の DVD を入れる.
- 以下の5-7のコマンドを入力し,ブートセクタの書き換えを行います.
- 光学ドライブに移動
C:\Documents and Setting\[ユーザー名]>e:
※e:はDVDドライブを指定して下さい.
※「\」は半角の¥で入力して下さい.
- DVD内の\bootフォルダに移動
E:\>cd \boot
※cdがフォルダに移動するコマンドです.
- ブートセクタ書き換えコマンドを実行
E:\boot>bootsect /nt60 all
※ ここまででVISTAの起動情報に置き換わります.このままだと今度はXPが起動しないので,以下の以下の8-12のコマンドを入力し,BCDにXP起動の為のエントリを追加します.
- ビスタのsystem32フォルダに移動
E:\boot>cd c:\windows\system32
- C:\WINDOWS\system32>bcdedit /create {ntldr} /d "Microsoft Windows XP"
- C:\WINDOWS\system32>bcdedit /set {ntldr} device partition=C:
- C:\WINDOWS\system32>bcdedit /set {ntldr} path \ntldr
- C:\WINDOWS\system32>bcdedit /displayorder {ntldr} /addlast
Windows Vistaの削除
マルチブートを解除し,Windows Vistaを削除する場合の作業手順は以下の通り.
- XPのブートローダである「NTLDR」が起動されるようにブートセクタを書き換える.
- Windows Vistaのファイルを削除する.
以下,詳細手順を記載します.
《XPのブートローダである「NTLDR」が起動されるようにブートセクタを書き換える》
- XPを起動する.
- アクセサリのコマンドプロンプトを起動する.
- DVDドライブ(E:とします)にVISTA の DVD を入れる.
- 以下の5-7のコマンドを入力し,ブートセクタの書き換えを行う.
- 光学ドライブに移動
[C]:\Documents and Setting\[ユーザー名]>e:
※[C]:はXPの入っているドライブ,場合によってはD:
※e:はDVDドライブを指定して下さい.
※「\」は半角の¥で入力して下さい.
- DVD内の\bootフォルダに移動
E:\>cd \boot
※cdがフォルダに移動するコマンドです.
- ブートセクタ書き換えコマンドを実行
E:\boot>bootsect /nt52 all
《Windows Vistaのファイルを削除する》
削除するWindows VistaがD:ドライブ等,c:ドライブ以外の場合は,当該ドライブをフォーマットして初期化すればよいです.
削除するWindows VistaがC:ドライブの場合は,手作業でファイルを削除する必要があります.XPの起動に必要な以下のファイルを残し,他のファイルを削除します.
- ntldr
- NTDETECT.COM
- boot.ini
- bootfont.bin
実際には,あまり危ない橋を渡らず,容量の多い「Documents and settings」「Program Files」「Windows」といったフォルダおよび「hiberfil.sys」「pagefile.sys」といったファイルを削除すれば十分でしょう.
WindowsXPの削除
マルチブートを解除し,WindowsXPを削除する場合の作業手順は以下の通り.
- BCDからXP起動の為のエントリを削除する.
- Windows XPのファイルを削除する.
以下,詳細手順を記載します.
《BCDからXP起動の為のエントリを削除する》
- Vistaを起動する.
- コマンドプロンプトを管理者として起動する(右クリックメニューから).
- 以下の4のコマンドを入力する.
- [C:]\windows\system32>bcdedit /delete {ntldr}
《Windows XPのファイルを削除する》
削除するWindows XPがD:ドライブ等,c:ドライブ以外の場合は,当該ドライブをフォーマットして初期化すればよいです.
削除するWindows XPがC:ドライブの場合は,手作業でファイルを削除する必要があります.Vistaの起動に必要な以下のファイルを残し,他のファイルを削除します.
- bootフォルダ
- bootmgr
実際には,あまり危ない橋を渡らず,容量の多い「Documents and settings」「Program Files」「Windows」といったフォルダおよび「pagefile.sys」といったファイルを削除すれば十分でしょう.
マルチブートの問題点
WindowsXPとWindows Vistaのマルチブートで重大な問題点があることが判明しています.それは「WindowsXPを起動するとWindows Vistaの復元ポイントが削除されてしまう」というものです.
これは,XPで使用しているボリュームシャドウコピーサービス用のストレージフィルタドライバである「volsnap.sys(=ボリュームのスナップショットをとる機能を実装)」の仕様上の問題点に起因するものであるとのことですが,Microsoftでは仕様変更する予定はないとのことです.
volsnap.sysに依存するアプリケーション(パーティションバックアップソフト類)を使用しないということであれば,以下の手順でvolsnap.sysを無効化すればこの問題を回避することはできるとのこと.
- XPを起動する.
- 「ファイル名を指定して実行」からレジストリエディタを起動(regeditと入力)する.
- HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\
Class\{71A27CDD-812A-11D0-BEC7-08002BE2092F}を開き、「UpperFilters」キーを削除
この改行は必要→