Windows Vista を買うならamazonで!
info_page
Windows Vista を使いこなそう!

VistaとXPのマルチブート

WindowsXPとWinsows Vistaのマルチブートの導入・解除時のポイントを解説します.雑誌等に載っている情報を自分の備忘録として纏めた内容です.

※ここではOSのインストールの基本手順やパーティション分割の手順等については解説してません.



マルチブート環境作成・解除における予備知識

《ブートシーケンスについて》

OS起動時は「MBR→ブートセクタ→ブートローダ」の順に情報入力が行われます.

  1. まずBIOSプログラムによってハードディスクの先頭セクターであるマスターブートレコード(MBR)が読み込まれる.
  2. 次にアクティブな基本領域(通常C:を含む領域)の先頭セクターであるブートセクタが読み込まれる.
  3. ブートセクタの記録内容に応じて,対応するブートローダを読み込む.


《ブートローダについて》

ブートローダはブートシーケンスにおいて最初に読み込まれる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」が設定される.

multiboot_01.PNG
multiboot_02.PNG

《補足事項》
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のファイルは一切失われていませんので,ご心配は無用です.
multiboot_03.PNG
multiboot_04.PNG


ブートに関する情報(ブートセクタ,ブートローダ)を変更してやれば,無事マルチブートをすることができます.
変更の内容は以下の2点.

  • Vistaのブートローダである「Bootmgr」が起動されるようにブートセクタを書き換える.
  • 「Bootmgr」からXPのブートローダ「NTLDR」を起動できるようにBCDにエントリを追加する.

これらの変更は,コマンドプロンプトからのコマンド入力で行います.

《ブート情報の変更手順》

  1. XPを起動
  2. アクセサリのコマンドプロンプトを起動
  3. DVDドライブ(E:とします)にVISTA の DVD を入れる.
  4. 以下の5-7のコマンドを入力し,ブートセクタの書き換えを行います.
     
  5. 光学ドライブに移動
    C:\Documents and Setting\[ユーザー名]>e:
    ※e:はDVDドライブを指定して下さい.
    ※「\」は半角の¥で入力して下さい.
     
  6. DVD内の\bootフォルダに移動
    E:\>cd \boot
    ※cdがフォルダに移動するコマンドです.
     
  7. ブートセクタ書き換えコマンドを実行
    E:\boot>bootsect /nt60 all

    ※ ここまででVISTAの起動情報に置き換わります.このままだと今度はXPが起動しないので,以下の以下の8-12のコマンドを入力し,BCDにXP起動の為のエントリを追加します.
     
  8. ビスタのsystem32フォルダに移動
    E:\boot>cd c:\windows\system32
     
  9. C:\WINDOWS\system32>bcdedit /create {ntldr} /d "Microsoft Windows XP"
     
  10. C:\WINDOWS\system32>bcdedit /set {ntldr} device partition=C:
     
  11. C:\WINDOWS\system32>bcdedit /set {ntldr} path \ntldr
     
  12. C:\WINDOWS\system32>bcdedit /displayorder {ntldr} /addlast

multiboot_05.PNG
multiboot_06.PNG


Windows Vistaの削除

マルチブートを解除し,Windows Vistaを削除する場合の作業手順は以下の通り.
  1. XPのブートローダである「NTLDR」が起動されるようにブートセクタを書き換える.
  2. Windows Vistaのファイルを削除する.

以下,詳細手順を記載します.

《XPのブートローダである「NTLDR」が起動されるようにブートセクタを書き換える》

  1. XPを起動する.
     
  2. アクセサリのコマンドプロンプトを起動する.
     
  3. DVDドライブ(E:とします)にVISTA の DVD を入れる.
     
  4. 以下の5-7のコマンドを入力し,ブートセクタの書き換えを行う.
     
  5. 光学ドライブに移動
    [C]:\Documents and Setting\[ユーザー名]>e:
    ※[C]:はXPの入っているドライブ,場合によってはD:
    ※e:はDVDドライブを指定して下さい.
    ※「\」は半角の¥で入力して下さい.
     
  6. DVD内の\bootフォルダに移動
    E:\>cd \boot
    ※cdがフォルダに移動するコマンドです.
     
  7. ブートセクタ書き換えコマンドを実行
    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を削除する場合の作業手順は以下の通り.
  1. BCDからXP起動の為のエントリを削除する.
  2. Windows XPのファイルを削除する.

以下,詳細手順を記載します.

《BCDからXP起動の為のエントリを削除する》

  1. Vistaを起動する.
     
  2. コマンドプロンプトを管理者として起動する(右クリックメニューから).
     
  3. 以下の4のコマンドを入力する.
     
  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を無効化すればこの問題を回避することはできるとのこと.

  1. XPを起動する.
     
  2. 「ファイル名を指定して実行」からレジストリエディタを起動(regeditと入力)する.
     
  3. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\
    Class\{71A27CDD-812A-11D0-BEC7-08002BE2092F}を開き、「UpperFilters」キーを削除



Page Top



この改行は必要→