OSのマルチブート環境の構築 

複数のOSをマルチブート出来る環境を構築する     (2009/04/19)
Windows XP Windows Vista CentOS Fedora Solaris.....


想定するコンピューターの構成


BIOS ブートディバイスの順序設定
 HDD #1
 HDD #2


HDD #1
M
B
R
P
B
R
P
B
R
P
B
R
P
B
R
partition 1
partition 2 partition 3 partition 4

HDD #2
M
B
R
P
B
R
設定用にXPを
インストール済
P
B
R
P
B
R

P
B
R
partition 1
partition 2 partition 3 partition 4

各HDDに存在する    のパーティションは、MBR のパーティション管理部でアクティブ指定がされている
パーティションを表す。 (アクティブパーティションは、各HDDで 指定されないかあるいは1箇所のみ)

MBR:マスターブートレコード(Master Boot Record)
    ハードディスクドライブの先頭セクタで 512バイト
PBR:パーティションブートレコード(Partition Boot Record)
    パーティションの先頭セクタで 512バイト。 (OSのブートローダーが記録されているブートセクタ)

上記構成でのブートの条件は、BIOS(拡張 int13h)を使用して起動する方式を採用している事。
パーティションの作成とアクティブパーティションを設定する為に、HDD#1 を外した状態(HDD#2のみ)で、
WindowsXP をHDD#2 の partition 1 にインストール後、HDD#1 を接続し、HDD#2 をBIOS設定で、最初に
起動するHDDとして設定。(一般的な通常のOSインストール手順)
(2台のHDDを接続したまま、ブートの優先順位の変更を行うだけでも良いが、操作ミスをなくす為の処置)

WindowsXP を立ち上げ、上記構成を構築する為にパーティションの作成(NTFSのフォーマット処理を含む)と、
アクティブパーティション設定後、BIOS の起動優先順序の設定を HDD#1、HDD#2 の順に再設定した状態。
Windows 系では、パーティションをフォーマットすると、フォーマットしたOSのローダーがPBRに書き込まれる。
説明の都合上、全てをプライマリーパーティションとして構成(アクティブパーティションの切り替え利用の為)
BIOS 設定では、CD/DVD-ROM ドライブのブートの優先順位がHDDより高く設定されている事も条件。

また、MBR、PBR のバックアップ(ファイル化)の為に、Fedora 10 の LiveCD を用意すること。
LiveCD は、起動時間や操作性に問題があるので、 LiveCD を USB メモリー対応させたツールを
用意することが望ましい。
作成方法は、Windows 環境で Fedora 10 LiveUSB を作成する手順を参照すれば容易に理解可能。



Windows のインストールに関連する挙動を確認する。

Windows のブートシーケンス
BIOSは、BIOS設定の起動順序に従い HDD#1 の MBR のプログラム部に記録されている
ローダープログラムを読み込み制御を渡す。 MBR のローダープログラムはHDDのアクティブ
パーティションの PBR に記録されているローダープログラムを読み込み制御を渡す。 
PBR のローダープログラムはアクティブパーティション内のOS本体をロードするプログラム
(ntldr/bootmgr)を読み込み制御を渡し、OSの起動を行う。



BIOS ブートディバイスの順序設定
 HDD #1
 HDD #2


HDD #1
M
B
R
P
B
R
P
B
R
P
B
R
P
B
R
partition 1
partition 2 partition 3 partition 4

HDD #2
M
B
R
P
B
R
設定用にXPを
インストール済
P
B
R
P
B
R
XPのインストール予定パーティション
P
B
R
partition 1
partition 2 partition 3 partition 4

HDD #2 の partitin 3 に Windows をインストールする事で、その挙動を調べる。

 1、BIOSの設定は、HDD#1 の方が、HDD#2 より、ブートの優先度が高い。
 2、HDD#1のアクティブパーティションは、partition 2 に設定済み。(HDD#2ではpartition 1 がアクティブ)
 3、1、2、の条件下で、HDD #2 の partition 3 に Windows XP をインストールする。
 4、インストールは、コンピュータに接続されている CD/DVDーROM から行う。
    (BIOSの設定で、ブートの順番はHDDより先に指定されている事)
 5、HDD#2 の partitin 3 へのインストールは、CD/DVD からOSのインストーラーを起動し、
   各種設定の途中でインストール先を聞いてくるので、HDD#2 の partitin 3 を指定する


 この条件で Windows XP をインストールすると、次の操作が行われる。
 1、BIOSで指定されている最初に起動する HDD (HDD #1) の MBR に  "PBRに記録されている
    プログラムを読み込み制御を移すためのローダープログラム"(IPL)が書き込まれる。
   このローダープログラムは、XP/Vista/GRUB のいずれの PBR も読み込むことができる。
   (MBRに書き込まれるローダーは、XPとVistaでは異なっているが流用可能。)
 2、MBRのパーティション情報でアクティブに指定されているパーティション (HDD #1 partition 2)
   PBR"OS の読み込み関与するプログラム" (XP では最終的に ntldr が読み込まれる)を書き
   込む。 アクティブパーティションには OS の起動に必要な各種ファイル (ntldr、boot.ini、.......)
   書き込まれる。
 3、OS のインストーラーで指定したパーティション(今回は HDD#2 の partitin 3)に、OS本体と一連の
   ソフトウエアが書き込まれる。
 4、この状態で、WindowsXP を起動すると、HDD #1 partition 2C: が割り当てられる。 OS 本体が
   インストールされたパーティションには異なる ドライブレターが 割り当てられる。 今回は動作確認用の
   テスト目的でインストールしているので、この構成であるが、本来はトラブルを避ける為に、OS の起動
   用ソフトが格納されるディレクトリーに、OS 自体もインストールするのが好ましい。

Windows XP のインストールが完了した状態

BIOS ブートディバイスの順序設定
 HDD #1
 HDD #2


HDD #1
M
B
R
P
B
R
P
B
R
ntldr
boot.ini
.......
P
B
R

P
B
R
partition 1
partition 2 partition 3 partition 4

HDD #2
M
B
R
P
B
R
設定用にXPを
インストール済
P
B
R

P
B
R
XPのインストール済み
パーティション
P
B
R
partition 1
partition 2 partition 3 partition 4


この時点で、HDD#1 の MBRとPBR をバックアップ。  Fedora 10 LiveUSB を起動して、バックアップします。
dd if=/dev/sda of=MBR_XP bs=512 count=1
dd if=/dev/sda2 of=PBR_XP bs=512 count=1
cp PBR_XP WinXP.PBR


引き続き、Windows Vista のインストールを行う。 Windows XP との競合を避ける為に HDD #1 の partitin 3 を
アクティブに変更し、Vista のブートに関連するファイルが HDD #1 の partitin 3 にセットアップされるように変更。
OS の本体は、HDD #2 の partitin 4 にインストールされるようにする。
本来ならば、ブート関連ファイルのインストールされたディレクトリに OS 本体もインストールするのが望ましいが、
テストでインストールするので、別ディスクのパーティションにインストールする。
Vista のインストール用に、パーティションのアクティブフラグの設定方法で、 記載した方法や、GUI ベースの
%SystemRoot%\system32\diskmgmt.msc を用いて、HDD #1 の partitin 3 をアクティブに変更する。


Windows Vista のインストール予定の構成

BIOS ブートディバイスの順序設定
 HDD #1
 HDD #2


HDD #1
M
B
R
P
B
R
P
B
R
ntldr
boot.ini
.......
P
B
R
Vista の boot
関連ファイル
P
B
R
partition 1
partition 2 partition 3 partition 4

HDD #2
M
B
R
P
B
R
設定用にXPを
インストール済
P
B
R

P
B
R
XPのインストール済み
パーティション
P
B
R
Vistaのインストール予定
パーティション
partition 1
partition 2 partition 3 partition 4

HDD #2 の partitin 4 に Windows Vista をインストールする。

 1、BIOSの設定は、HDD#1 の方が、HDD#2 より、ブートの優先度が高い。
 2、HDD#1のアクティブパーティションは、partition 3 に設定済み。(HDD#2ではpartition 1 がアクティブ)
 3、1、2、の条件下で、HDD #2 の partition 4 に Windows Vista をインストールする。
 4、インストールは、コンピュータに接続されている CD/DVDーROM から行う。
    (BIOSの設定で、ブートの順番はHDDより先に指定されている事)
 5、HDD#2 の partitin 4 へのインストールは、CD/DVD からOSのインストーラーを起動し、
   各種設定の途中でインストール先を聞いてくるので、HDD#2 の partitin 4 を指定する


 この条件で Windows Vista をインストールすると、次の操作が行われる。
 1、BIOSで指定されている最初に起動する HDD (HDD #1) の MBRに  "PBRに記録されている
   プログラムを読み込み制御を移すためのローダープログラム"(IPL)が書き込まれる。
   このローダープログラムは、XP/Vista/GRUB のいずれの PBR も読み込むことができる。
   (MBRに書き込まれるローダーは、XPとVistaでは異なっているが流用可能。)
 2、MBRのパーティション情報でアクティブに指定されているパーティション (HDD #1 partition 3)
   PBR"OS の読み込みに関与する(Vistaでは最終的に bootmgr が読み込まれる)を
   書き込む。アクティブパーティションには OS の起動に必要な各種ファイル(bootmgr、\boot.)
   
が書き込まれる。
 3、OS のインストーラーで指定したパーティション(今回は HDD#2 の partitin 4)に、OS本体と一連の
   ソフトウエア
が書き込まれる。
 4、この状態で、Windows Vista を起動すると、HDD #2 partition 4C: が割り当てられる。
   HDD #1 のアクティブパーティションには、異なる ドライブレターが 割り当てられる。(この例では D:)


Windows Vista のインストールが完了した状態

BIOS ブートディバイスの順序設定
 HDD #1
 HDD #2


HDD #1
M
B
R
P
B
R
P
B
R
ntldr
boot.ini
.......
P
B
R
bootmgr
\boot
P
B
R
partition 1
partition 2 partition 3 partition 4

HDD #2
M
B
R
P
B
R
設定用にXPを
インストール済
P
B
R

P
B
R
XPのインストール 済み
パーティション
P
B
R
Vistaのインス トール済み
パーティション
partition 1
partition 2 partition 3 partition 4


この時点で、HDD#1 の MBRとPBR をバックアップ。  Fedora 10 LiveUSB を起動して、バックアップします。
dd if=/dev/sda of=MBR_Vista bs=512 count=1
dd if=/dev/sda3 of=PBR_Vista bs=512 count=1
cp PBR_Vista Vista.pbr 


引き続き、CentOS のインストールを行う。 Windows XP / Vista との競合を避ける為に HDD #1 の partitin 4 を
アクティブに変更し、CentOS を HDD #1 の partitin 3 にセットアップする。
( CentOS、Fedora、Solaris 等 はGRUB というローダーを使用して OS を起動するので、あるOS が インストール
した GRUB を共用して、統合する事が可能。  また、GRUB を MBR にインストールした場合は、パーティションの
アクティブフラグを参照しないので、今回行うマルチブートの方式は利用できなくなる。 GRUBでの統合運用は可能)
ブートローダー(GRUB)は、HDD #1 の partiton 4 にインストールする。 Windows XP/Vista が MBR に書き込む
ローダープログラムは、partitin 4 (PBR) に書き込まれた、GRUB をロード出来るのでアクティブパーティションを
変更
するだけで、所望する OS を起動出来るようになる。
(最終的には、各 OS から相互起動な可能な設定にするが、初期はアクティブパーティションの変更による方式)

CentOS のインストール用に、パーティションのアクティブフラグの設定方法で、HDD #1 の partitin 4 をアクティブ
に変更する。

CentOS のインストール予定の構成

BIOS ブートディバイスの順序設定
 HDD #1
 HDD #2


HDD #1
M
B
R
P
B
R
P
B
R
bootmgr
\boot
P
B
R
ntldr
boot.ini
.......
P
B
R
CentOS のインストール予定
partition 1
partition 2 partition 3 partition 4

HDD #2
M
B
R
P
B
R
設定用にXPを
インストール済
P
B
R

P
B
R
XPのインストール済み
パーティション
P
B
R
Vistaのインストール済み
パーティション
partition 1
partition 2 partition 3 partition 4

HDD #1 の partitin 4 に CentOS をインストールする。

 1、BIOSの設定は、HDD#1 の方が、HDD#2 より、ブートの優先度が高い。
 2、HDD#1のアクティブパーティションは、partition 4 に設定済み。
 3、1、2、の条件下で、HDD #1 の partition 4 に CentOS をインストールする。
 4、インストールは、コンピュータに接続されている CD/DVDーROM から行う。
    (BIOSの設定で、ブートの順番はHDDより先に指定されている事)
 5、CentOS の HDD #1 partitin 4 (PBR) へのインストールは、CD/DVD からOSのインストーラーを
   起動し、パーティション設定画面で ”カスタムレイアウトを作成します” を選択します。
   パーティション4に / を割り当て、 ext3 で フォーマットする指定をします。  SWAP が無いと警告
   を出しますが、今回はマルチブートの設定方法を習得するのが目的なので、そのまま継続します。
   GRUB のインストール場所を変更する為に、ブートローダの設定
の 画面で、”高度なブートローダ
   オプションの設定” にチックを入れます。
   ブートローダーのインストール
する場所の指定画面では、まず、ドライバーの順 の変更をクリックし、
   HDD の認識順が期待通りかを確認します。
   (USBメモリ-からOSのインストーラを起動すると、USBメモリーのMBRがGRUBのインストール先に
   デフォルト設定されてしまいますので、必ず変更が必要になります。)
   HDD の認識順序が正しい事を確認したら、GRUB のインストール先を ”ブートパーティションの
   最初のセクター” (このケースでは、/dev/sda4)に設定してください。


 この条件で CentOS をインストールすると、次の操作が行われる。
 1、BIOS で指定されている最初に起動する HDD (HDD #1) の MBR は一切変更されない。
 2、MBRのパーティション情報でアクティブに指定されているパーティション (HDD #1 partition 4)
   PBRGRUB が書き込まれる。 ブートに関連するファイルは、 /boot 配下に GRUB の設定に
   関係するファイルは、
/boot/GRUB 配下に書き込まれます。


CentOS のインストールが完了した状態

BIOS ブートディバイスの順序設定
 HDD #1
 HDD #2


HDD #1
M
B
R
P
B
R
P
B
R
bootmgr
\boot
P
B
R
ntldr
boot.ini
.......
P
B
R
CentOS のインストール済み
パーティション
^
/dev/sda
partition 1
/dev/sda1
partition 2
/dev/sda2
partition 3
/dev/sda3
partition 4
/dev/sda4

HDD #2
/dev/sdb
M
B
R
P
B
R
設定用にXPを
インストール済
P
B
R

P
B
R
XPのインストール 済み
パーティション
P
B
R
Vistaのインストール済み
パーティション
partition 1
/dev/sdb1
partition 2
/dev/sdb2
partition 3
/dev/sdb3
partition 4
/dev/sdb4


この時点で、HDD#1 の PBR をバックアップ。  Fedora 10 LiveUSB を起動して、バックアップします。
dd if=/dev/sda4 of=PBR_CentOS bs=512 count=1
cp PBR_CentOS CentOS.pbr



以上で各OSのインストールは完了しました。
パー ティションのアクティブフラグの設定方法 に記載されている方法で、アクティブパーティションを
変更すれば、
自由に OS を切り替えて、使用することが可能になります。



各パーティションにインストールされたファイル群  (参考資料)
HDD #1
M
B
R
P
B
R
 
 
 
 
 
 
 
 
 
 
 
P
B
R
AUTOEXEC.BAT
boot.ini
bootfont.bin
CentOS.pbr
CONFIG.SYS
IO.SYS
MSDOS.SYS
NTDETECT.COM
ntldr
WinXP.PBR
Vista.PBR
P
B
R
Boot
bootmgr
BOOTSECT.BAK
WinXP.PBR
Vista.PBR
CentOS.PBR
 
 
 
 
 
P
B
R
bin
boot
dev
etc
home
lib
lib64
lost+found
media
misc
mnt
net
opt
proc
root
sbin
selinux
srv
sys
tmp
usr
var
^  
/dev/hda
partition 1
/dev/hda1
partition 2
/dev/hda2
partition 3
/dev/hda3
partition 4
/dev/hda4


応用的な構成
MBR (Windowsのローダー | GUBR)
partition 1 primary Windows Vista
partition 2 primary Windows XP
partition 3 primary /boot  (GRUB の共用)
partition 4 extended
swap CentOS Fedora Solaris
  MBR に GRUBをインストールする場合は、起動 OS の制御全てを GRUB で
  行わなければなりません。
  アクティブパーティションを切り替えて OS を変更する方法は利用できません。



アクティブパーティションを切り替えて OS を変更するのは、面倒なので各 OS の起動画面で OS の
選択を出来るようにしたい場合は、チェーンローダーを利用した OS の選択方法を参照してください。



MBR (PBR)のバックアップ・リストア方法

CentOS / Fedora 編 (dd コマンドを使用して設定)

# fdisk -l
    :
   Device Boot   Start      End      Blocks   Id  System
/dev/sda1            1     2611    20972826    7  HPFS/NTFS
/dev/sda2         2612     5222    20972857+   7  HPFS/NTFS
/dev/sda3   *     5223     7833    20972857+   7  HPFS/NTFS
/dev/sda4         7834    10011    17494785   83  Linux
    :

# dd if=/dev/sda of=MBR_name bs=512 count=1 
1+0 records in
1+0 records out
512 bytes (512 B) copied, 0.000479768 s, 1.1 MB/s
#




# dd if=/dev/sda2 of=PBR_name bs=512 count=1 
1+0 records in
1+0 records out
512 bytes (512 B) copied, 0.000479768 s, 1.1 MB/s
接 続されているハードディスクを
確認する方法。

/dev/sda が該当 HDD
/dev/sda1、/dev/sda2、/dev/sda3
/dev/sda4 が各パーティションに対応



dd コマンドで HDD のセクターを
読み書きする。 (MBRの保存)
if= :読み込むデバイスかファイル
of= :書き出すデバイスかファイル
bs= :アクセスするバイト数
count= :bs で指定したバイト数を
       単位に何個分アクセス
       するかを指定

dd コマンドで HDD のパーティション
2 の PBR 部のセクターを読み。
ファイル名 PBR_name として
保存する。
# dd if=MBR_name of=/dev/sda bs=446 count=1 
1+0 records in
1+0 records out
446 bytes (446 B) copied, 0.0211347 s, 21.1 kB/s
#
dd コマンドで HDD のセクターに
データを書き込む。 (MBR)
(プログラム分のみを書き込む)
MBR の 446 ~511 byte には、
パーティション情報とマジックNo.が
書き込まれているので変更しない。

    Fedora 10 LiveUSB 利用に関して
Fedora 10 LiveUSB から Fedora 10 を起動すると、USB メモリーは /mnt/live としてマウントされます。
この時、USB メモリーは、リードオンリーでマウントされているので書き込みが出来ません。

dd コマンドを使用して、MBR、PBR を USBメモリーにバックアップする場合は、リマウント処理をします。
    mount /mnt/live -o rw,remount
    dd if=/dev/sda2 of=/mnt/live/PBR_name bs=512 count=1

Fedora 10 は、NTFS形式のパーティションに直接読み書きできますので、Windows のパーティションを
マウントし、直接 Windows のパーティション に保存する事も可能です。
    mkdir /mnt/2
    mount /dev/sda2 /mnt/2
    dd if=/dev/sda2 of=/mnt/2/PBR_name bs=512 count=1

これらの操作は、root (sudoを含む) で行ってください。


パーティションのアクティブフラグの設定方法

Windows XP / Vista 編 (diskpart コマンドを使用して設定)

C:\>diskpart
    :
DISKPART> list disk

  Disk ###  Status           Size     Free     Dyn  Gpt
  --------  ---------------  -------  -------  ---  ---
  Disk 0    オンライン        149 GB      0 B
* Disk 1    オンライン         77 GB      0 B
    :
DISKPART> select disk 1

ディスク 1 が現在選択されているディスクです。


DISKPART> list PARTITION

  Partition ###  Type                Size     Offset
  -------------  ------------------  -------  -------
  Partition 1    プライマリ            20 GB    32 KB
  Partition 2    プライマリ            20 GB    20 GB
  Partition 3    プライマリ            20 GB    40 GB
  Partition 4    不明                   17 GB    60 GB

DISKPART> select PARTITION 4

パーティション 4 は現在選択されているパーティションです。

DISKPART> active

DiskPart は現在のパーティションをアクティブとしてマークしました。

DISKPART> exit


接続されているハードディスクを
確認する方法。





属性を変更したいパーティションの
ある ハードディスクを選択する。



ディスク中のパーティション情報を
確認する。



diskpart コマンドを使用すれば、
UNIX の ファイルシステム ext3 も
アクティブに設定できる。

属性を変更したいパーティションを
選択する。


アクティブフラグを書き込む


CentOS / Fedora 編 (parted コマンドを使用して設定)

# fdisk -l
    :
   Device Boot   Start      End      Blocks   Id  System
/dev/sda1            1     2611    20972826    7  HPFS/NTFS
/dev/sda2         2612     5222    20972857+   7  HPFS/NTFS
/dev/sda3   *     5223     7833    20972857+   7  HPFS/NTFS
/dev/sda4         7834    10011    17494785   83  Linux
    :

# parted  /dev/sda
GNU Parted 1.8.8
/dev/sda を使用
    :
(parted) print
    :
番号  開始    終了    サイズ  タイプ   ファイルシステム  フラグ
 1    32.3kB  21.5GB  21.5GB  primary  ext3
 2    21.5GB  43.0GB  21.5GB  primary  ntfs              boot
 3    43.0GB  64.4GB  21.5GB  primary  ntfs 
 4    64.4GB  82.3GB  17.9GB  primary  ext3

(parted) toggle 3 boot
(parted) print
    :
番号  開始    終了    サイズ  タイプ   ファイルシステム  フラグ
 1    32.3kB  21.5GB  21.5GB  primary  ext3
 2    21.5GB  43.0GB  21.5GB  primary  ntfs
 3    43.0GB  64.4GB  21.5GB  primary  ntfs              boot
 4    64.4GB  82.3GB  17.9GB  primary  ext3
(parted) quit
接続されているハードディスクを
確認する方法。







属性を変更したいパーティションの
ある ハードディスクを選択する。


ディスク中のパーティション情報を
確認する。






toggle コマンドを使用して、属性を
変更する。

3 番目を アクティブ(boot)に設定



バックアップしたMBR/PBRの内容の確認方法

CentOS / Fedora 編 (hexdump コマンドを使用して設定)

# hexdump -C MBR_Fedora
00000000  eb 48 90 d0 bc 00 7c fb  50 07 50 1f fc be 1b 7c  |.H....|.P.P....||
00000010  bf 1b 06 50 57 b9 e5 01  f3 a4 cb bd be 07 b1 04  |...PW...........|
00000020  38 6e 00 7c 09 75 13 83  c5 10 e2 f4 cd 18 8b f5  |8n.|.u..........|
00000030  83 c6 10 49 74 19 38 2c  74 f6 a0 b5 07 b4 03 02  |...It.8,t.......|
00000040  80 00 00 80 3f 00 3a 00  00 08 fa 90 90 f6 c2 80  |....?.:.........|
00000050  75 02 b2 80 ea 59 7c 00  00 31 c0 8e d8 8e d0 bc  |u....Y|..1......|
00000060  00 20 fb a0 40 7c 3c ff  74 02 88 c2 52 f6 c2 80  |. ..@|<.t...R...|
00000070  74 54 b4 41 bb aa 55 cd  13 5a 52 72 49 81 fb 55  |tT.A..U..ZRrI..U|
00000080  aa 75 43 a0 41 7c 84 c0  75 05 83 e1 01 74 37 66  |.uC.A|..u....t7f|
00000090  8b 4c 10 be 05 7c c6 44  ff 01 66 8b 1e 44 7c c7  |.L...|.D..f..D|.|
000000a0  04 10 00 c7 44 02 01 00  66 89 5c 08 c7 44 06 00  |....D...f.\..D..|
000000b0  70 66 31 c0 89 44 04 66  89 44 0c b4 42 cd 13 72  |pf1..D.f.D..B..r|
000000c0  05 bb 00 70 eb 7d b4 08  cd 13 73 0a f6 c2 80 0f  |...p.}....s.....|
000000d0  84 f0 00 e9 8d 00 be 05  7c c6 44 ff 00 66 31 c0  |........|.D..f1.|
000000e0  88 f0 40 66 89 44 04 31  d2 88 ca c1 e2 02 88 e8  |..@f.D.1........|
000000f0  88 f4 40 89 44 08 31 c0  88 d0 c0 e8 02 66 89 04  |..@.D.1......f..|
00000100  66 a1 44 7c 66 31 d2 66  f7 34 88 54 0a 66 31 d2  |f.D|f1.f.4.T.f1.|
00000110  66 f7 74 04 88 54 0b 89  44 0c 3b 44 08 7d 3c 8a  |f.t..T..D.;D.}<.|
00000120  54 0d c0 e2 06 8a 4c 0a  fe c1 08 d1 8a 6c 0c 5a  |T.....L......l.Z|
00000130  8a 74 0b bb 00 70 8e c3  31 db b8 01 02 cd 13 72  |.t...p..1......r|
00000140  2a 8c c3 8e 06 48 7c 60  1e b9 00 01 8e db 31 f6  |*....H|`......1.|
00000150  31 ff fc f3 a5 1f 61 ff  26 42 7c be 7f 7d e8 40  |1.....a.&B|..}.@|
00000160  00 eb 0e be 84 7d e8 38  00 eb 06 be 8e 7d e8 30  |.....}.8.....}.0|
00000170  00 be 93 7d e8 2a 00 eb  fe 47 52 55 42 20 00 47  |...}.*...GRUB .G|
00000180  65 6f 6d 00 48 61 72 64  20 44 69 73 6b 00 52 65  |eom.Hard Disk.Re|
00000190  61 64 00 20 45 72 72 6f  72 00 bb 01 00 b4 0e cd  |ad. Error.......|
000001a0  10 ac 3c 00 75 f4 c3 00  00 00 00 00 00 00 00 00  |..<.u...........|
000001b0  00 00 00 00 00 00 00 00  71 16 4a b5 00 00 00 01  |........q.J.....|
000001c0  01 00 83 fe ff ff 3f 00  00 00 34 0a 80 02 00 fe  |......?...4.....|
000001d0  ff ff 07 fe ff ff 73 0a  80 02 73 0a 80 02 80 fe  |......s...s.....|
000001e0  ff ff 07 fe ff ff e6 14  00 05 73 0a 80 02 00 fe  |..........s.....|
000001f0  ff ff 83 fe ff ff 59 1f  80 07 02 e6 15 02 55 aa  |......Y.......U.|
00000200
#




チェーンローダーを利用した OS の選択方法の追加

Windows XP 編

Windows XP の OS ローダープログラム ntldr は、 Vista も CentOS も直接起動できません。
この回避方法として、チェーンローダー機能を使用します。
準備として、Vista(bootmgr) をインストールしたパーティションの バックアップした PBR(Vista.pbr) を用意します。
同様に、CentOS をインストールしたパーティションの バックアップした PBR(CentOS.pbr) を用意します。
ntldr がインストールされた C:、 HDD #1 partition  2 のルートディレクトリーに、Vista.pbr と CentOS.pbr  コピー
しておきます。
boot.ini
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(1)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(1)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect
c:\CentOS.pbr="CentOS 5.2"
c:\Vista.pbr="Windows Vista"

Windows Vista 編

Windows Vista の OS ローダープログラム bootmgr は、 XP を直接起動する事が可能ですが、 CentOS は起動
できません。 この回避方法として、チェーンローダー機能を使用します。
準備として、XP(ntldr) をインストールしたパーティションの バックアップした PBR(WinXP.pbr) を用意します。
同様に、CentOS をインストールしたパーティションの バックアップした PBR(CentOS.pbr) を用意します。
bceedit コマンドを使用して、新しい OS エントリーを作成します。 このコマンドは管理者権限で実行します。
bootmgr がインストールされたパーティションに与えられたドライブレターが、 C: でないので注意するする事。
この ケースでは、D: が割り当てられており、そのルートディレクトリーに、WinXP.PBR と CentOS.PBR が
コピー 済みである事。
bcdedit /create が返してくる エントリ {????????-223b-11de-84b4-000a79284e82} に対して値を設定する。
C:\> bcdedit /create /d "Windows XP PBR" /application osloader
エントリ {e32f7234-223b-11de-84b4-000a79284e82} は正常に作成されました。

C:\> bcdedit /set {e32f7234-223b-11de-84b4-000a79284e82} device partition=D:
この操作を正しく終了しました。

C:\> bcdedit /set {e32f7234-223b-11de-84b4-000a79284e82} path \WinXP.PBR
この操作を正しく終了しました。

C:\> bcdedit /displayorder {e32f7234-223b-11de-84b4-000a79284e82} /addlast
この操作を正しく終了しました。
C:\>bcdedit /create /d "CentOS 5.2" /application osloader"
エントリは {e32f7233-223b-11de-84b4-000a79284e82} に正常に作成されました。

C:\>bcdedit /set {e32f7233-223b-11de-84b4-000a79284e82} device partition=D:
この操作を正しく終了しました。

C:\>bcdedit /set {e32f7233-223b-11de-84b4-000a79284e82} path \CentOS.PBR
この操作を正しく終了しました。

C:\>bcdedit /displayorder {e32f7233-223b-11de-84b4-000a79284e82}  /addlast
この操作を正しく終了しました。
C:\>bcdedit

Windows ブート マネージャ
--------------------------------
identifier              {bootmgr}
device                  partition=D:
description             Windows Boot Manager
locale                  ja-JP
inherit                 {globalsettings}
default                 {current}
resumeobject            {fa12fd2f-217a-11de-8c0e-f655cf4170b0}
displayorder            {current}
                        {e32f722f-223b-11de-84b4-000a79284e82}
                        {e32f7233-223b-11de-84b4-000a79284e82}
                        {e32f7234-223b-11de-84b4-000a79284e82}
toolsdisplayorder       {memdiag}
timeout                 30

Windows ブート ローダー
--------------------------------
identifier              {current}
device                  partition=C:
path                    \Windows\system32\winload.exe
description             Microsoft Windows Vista
locale                  ja-JP
inherit                 {bootloadersettings}
osdevice                partition=C:
systemroot              \Windows
resumeobject            {fa12fd2f-217a-11de-8c0e-f655cf4170b0}
nx                      OptIn

Windows ブート ローダー
--------------------------------
identifier              {e32f7233-223b-11de-84b4-000a79284e82}
device                  partition=D:
path                    \CentOS.PBR
description             CentOS 5.2

Windows ブート ローダー
--------------------------------
identifier              {e32f7234-223b-11de-84b4-000a79284e82}
device                  partition=D:
path                    \WinXP.PBR
description             Windows XP PBR

C:\>

CentOS 編

CentOS の OS ローダープログラム GRUB は、 XP も Vista も直接起動できません。
この回避方法として、チェーンローダー機能を使用します。
/boot/GRUB ディレクトリにある grub.conf を編集して、 Windows 用のエントリーを追加します。
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You do not have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /, eg.
#          root (hd0,3)
#          kernel /boot/vmlinuz-version ro root=/dev/sda4
#          initrd /boot/initrd-version.img
#boot=/dev/sda4
default=0
timeout=5
splashimage=(hd0,3)/boot/grub/splash.xpm.gz
#hiddenmenu
title CentOS (2.6.18-128.1.6.el5)
    root (hd0,3)
    kernel /boot/vmlinuz-2.6.18-128.1.6.el5 ro root=LABEL=/ rhgb quiet
    initrd /boot/initrd-2.6.18-128.1.6.el5.img
title CentOS (2.6.18-92.el5)
    root (hd0,3)
    kernel /boot/vmlinuz-2.6.18-92.el5 ro root=LABEL=/ rhgb quiet
    initrd /boot/initrd-2.6.18-92.el5.img
title Windows XP
    rootnoverify (hd0,1)
    chainloader +1
title Windows Vista
    rootnoverify (hd0,2)
    chainloader +1
GRUB は、HDD上の PBR を直接 読み込みますので、事前にファイル化する必要はありません。


各 OS に上記の設定を加える事で、起動時に任意の OS を選択して起動する事が可能になります。



go to TopPage go to CategoryTop