工作室のページ    

自宅PC3号機 VISTAのトリプルブートにアップデートの苦労話

2007.5.20 自宅のPC(3号機)に Vistaをインストール。 ME, XP, Vista の3-multiBoot システムとした。
そのときの苦労を後日のために残したメモです。


MEMO

                                                                      2007.5.20  S.Emori
   Vista, XP ME のマルチブートについて  (ブートローダーの設定法)
   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    〜〜〜 WindowsのOSをマルチブートにするときの注意点メモ 〜〜〜
1. Windowsの Bootの仕組み
 ・ BIOSにより 指示されたドライブにある先頭512バイトのセクタ(MBR Master Boot Record)にある情報が
    メモリに読み込まれ 起動する。
 ・ MBRは Microsoft OS(DOS, Windows)では
      - BOOTプロログラム(コード)
      - ドライブのPartitionのエントリー情報  先頭セクタの一情報、種類、起動フラッグが
        4個分記載されている。(各16バイト)
      - おまじないの特殊コード (0xAA55)
 ・ マルチブートでは
      - このMBRの 起動プログラムが決めて。
 ・ MBR上の起動プログラム
      - Win 9x系
      - Win NT(2K)系  loader= ntldr
                      9x系を含む 場合は ntldr.exe からジャンプする構造。
      - Vista         loader= bootmgr
                      NT系(+ 9x系)へのジャンプは bootmgr から ntldr が指示される。
                      9x系を含む 場合は ntldr.exe からジャンプする構造。
 ・ OSを(各異なるPartitionに)インストールすると MBRの起動プログラムがオーバーライトされるので
    マルチブートが効かなくなる場合がある。 古いOSの後に より新しいOSをインストールすると
    この問題はない。 古いOSを インストールし直すとマルチブートは壊れる。
 ・ OS CDから 新規インストールすると そのOS上では そのOSのドライブが C: になる。 マルチのOS上で
    殿OSからも特定OSのドライブ名を一致させるのは 古いOSで 空のドライブをついくり 古いOSから起動
    OSインストールを起動する必要がある。
 ・MBRの起動プログラム(コード)の書き換え(修復)。
    最新のOSが何であるかで異なる。
    - Win 9x系
       <DOSをboot(FDからロード)し>
           FDISK.exe /MBRを実行。
    - Win NT系(XPまで)
       <CDで NTシステムをBOOTし>
            回復コンソールで fixmbr を実行する。
       <Vista上で>
            アドミニ権限で コマンドプロンプトを立ち上げ
            bootsect.exe /nt52 c: (or ALL) を実行。
              note) c: は Vistaから見える MBRがあるドライブ名。
                    nt52は NT系を起動する(nkldrを起動プログラムにする)ようにするコマンド。
    - Vista
       <NT(XP)上の コマンドププロンプトで>
            bootsect.exe /nt60 c: (or ALL) を実行。
              note) nt60は NT系を起動する(bootmgrを起動プログラムにする)ようにするコマンド。
 ・マルチOSの選択与野 指示file
    - NT系 c:\ boot.ini
           最新OSがNT系のときは TXT editor で update可能。
    - Vista
           記録fileは 不明?
           書き換えeditえrは bcdedit.exe.  少しややこしい。(下記参照)
2. MBR書き換えと 起動順を選択するfileのupdate方法。
(Step-1)
MBRの作成の方法
C: Active partition   ==> Win ME
D: XP
E: Vista    の例。
・C:のみ Win)x系で起動したければ
    DOS で FDISK /mbr
・マルチbootのMBRは以下
1)Bootsect.exe を C:にcopyしておく
2)homeはどこからでもOK。コマンドプロンプト画面で Active Partitionの MBRにある
  Boot Program (コード)を指定する。
   a) /nt60  ==> Vista 用起動program = bootmgr.exe  を起動
                起動選択情報は BCDboot.ini 場所不明(c:\boot\bootstat.datか?)にあり
               そのeditorは BCDedit.exe
   b) /nt52  ==> Win2k系用の起動program = ntldrを起動
                起動選択情報は c:\boot.ini にあり そのeditorは txt editor。
3)手順
 a)すべてのpartitionの MBRを NT系に。
    Bootsect.exe /nt52 ALL
---- 結果 responce ----
Target volumes will be updated with NTLDR compatible bootcode.
C: (\\?\Volume{ad8a9b66-0332-11dc-99cd-806d6172696f})
    Updated FAT32 filesystem bootcode.  The update may be unreliable since the
    volume could not be locked during the update:
D: (\\?\Volume{3f814a57-059a-11dc-885f-806d6172696f})
    Updated NTFS filesystem bootcode.  The update may be unreliable since the
    volume could not be locked during the update:
E: (\\?\Volume{13285a2e-05b3-11dc-9d5e-000c6e0cb073})
    Updated NTFS filesystem bootcode.  The update may be unreliable since the
    volume could not be locked during the update:
Bootcode was successfully updated on all targeted volumes.
---------------------------------------------------
 a)C:のpartition MBRを Vista系に。
   Bootsect.exe /nt60 c:
Target volumes will be updated with BOOTMGR compatible bootcode.
C: (\\?\Volume{ad8a9b66-0332-11dc-99cd-806d6172696f})
    Updated FAT32 filesystem bootcode.  The update may be unreliable since the
    volume could not be locked during the update:
Bootcode was successfully updated on all targeted volumes.
========================================================================================
(Step-2)
・Vista bootmgr用の 起動ドライブ選択メニューのedit方法。
・BCDedit.exeを C:にcopyしておく
・XP or Vistaのコマンドプロンプトで変更可。
   (Vistaではコマンドプロンプト起動は右クリックしadmini権限で)
c:\bcdedit /create
c:\bcdedit /set {ntldr} device partition=C:
c:\bcdedit /set {ntldr} description "WindowsXP,MEはこちら"  の形
           /? でhelp画面。
1) bcdedit /enum の例   (結果表示)
c:\bcdedit /enum
Windows Boot Manager
--------------------
identifier              {bootmgr}
device                  partition=C:
description             Windows Boot Manager
locale                  ja-JP
inherit                 {globalsettings}
default                 {ntldr}
displayorder            {ntldr}
                        {4b57ec72-05d4-11dc-a14b-99083dd1c21e}
toolsdisplayorder       {memdiag}
timeout                 5
Windows Legacy OS Loader
------------------------
identifier              {ntldr}
device                  partition=C:
path                    \ntldr
description             WindowsXP,MEはこちら
Windows Boot Loader
-------------------
identifier              {4b57ec72-05d4-11dc-a14b-99083dd1c21e}
device                  partition=E:
path                    \Windows\system32\winload.exe
description             Microsoft Windows Vista
locale                  ja-JP
inherit                 {bootloadersettings}
osdevice                partition=E:
systemroot              \Windows
resumeobject            {4b57ec73-05d4-11dc-a14b-99083dd1c21e}
nx                      OptIn
以上