工作室のページ
自宅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 |
以上 |