増設 HDD側に Linux をインストールしてXPとLinuxのデュアルブートの設定 [ぱそ関係]
普通の Windows XP プリインストールパソコンに HDD を増設し、そのHDD に Linux (私の場合はFedora Core3) を入れて使う場合、デュアルブートの設定が必要になる。
いろんなやりかたがあるが、私としては以下のことができるようにしたかった。
その1) いちばん最初に起動するのは Windows XP の起動画面
その2) Windows XP の起動メニュー画面からも Linux を選択したり、Linux の起動メニュー画面から Windows XP を起動できたりという、本来のターゲット OS と そうじゃない OS のどちらも相互に起動できるようにしておきたい。
[default] NTDLR −−−−−−−−−−−→ Windows XP \ / × / \ [alternative]GRUB −−−−−−−−−−−→ Linux(Fedora Core3)
そんなマシンのストレージ構成は以下のような感じ
Primary IDE Master: HDD0 Slave: HDD1 Secondary IDE Master: CD-ROM Slave: none
で、HDD0/1 の中身はそれぞれ以下のような感じになっていた。
HDD0 [MBR=NTLDR | P0=Windows XP ] HDD1 [MBR=GRUB | P0=Linux File System | P1=SWAP] P<n> はパーティション
実は、HDD 増設して FC3 をインストールするときに、起動ドライブのブートローダーをGRUBに書き変えるぞっていう手順が出て来たけど、いきなりGRUBをMBRにとか言われても心の準備ができてましぇん。(Windows XP が起動しなくなったら困る) ということで、とりあえず GRUB は増設した方の HDD の MBR にいれたのよ。
さてインスト−ルも終ったし起動してみるかなというところで、はたと気が付けば、Linux を直接起動する術がない。しかたないので、FC3のレスキュー CD や GRUB の起動 FDD を使って Linux を起動するというかなりつらい日々がつづいていた。
要するに、Windows XP のブートローダーである NTLDR と Linux のブートローダーである GRUBの 設定をうまいことやってやればよいという話なのは解っていたのだが Windows XP の入っている HDD は極力変更せずに Dual boot する方法をさぐっていたのであった。。。
ということでさっそくいってみよう。 NTLDR と GRUB の設定(インストール)の大まかな流れは以下の通り。
1 GRUB を Linux 側 HDD の PBR にインストール 2 NTLDR で Linux を起動できるように設定 3 GRUB で Windows XP を起動できるように設定
ここで注意しないといけないのは、HDD1 の MBR に入っている GRUB は使わないということだ。 じゃあ何使うの?っていうことだが、Linux が置いてある P0 の PBR(Partition Boot Record) に GRUB を入れてそれを使う。 これに気付くのに1週間ほどかかった。(実は info grub にさりげなく書いてあった)とほほ。
□ まずは PBR に GRUB をインストール
1.1. /sbin/grub 1.2. GRUB> root (hd1,0) → HDD1 の最初のパーティションがルートFSということ ここで File System がext2fs とかなんとかっていう表示がでてくればOK 1.3. find /boot/grub/stage1 → 一応、ちゃんとファイルがみえることを確認。 1.4. GRUB> setup (hd1,0) ← ,0) がミソ。 PBR だよん。 1.5. GRUB> quit ← (qだけでもよかったかな?)
さて、これで GRUB のインストールは終了。
なのだが、これを NTLDR から起動するためには NTLDRからみえる場所(=Windows XP の HDD のどこか)に置いてやらないといけない。 ということで、ひきつづき先ほどインストールした GRUB を Disk Image として取り出す。 媒介メディアとしてフロッピーを使用。
1.5. dd if=/dev/hdb1 of=/tmp/linux.pbr bs=512 count=1 → Linux のパーティションの最初の512バイトを /tmp/linux.pbr というファイルに書き出す。 1.6. cp /tmp/linux.pbr /media/floppy ← 使用するメディアにあわせてね。 1.7. sync ← これは趣味の問題ですが癖になってます。 1.8. コピーできたら、フロッピーを抜いてマシン再起動し、Windows XP を起動
# これってstage1 ファイルをそのままコピってもOKってことかな?という疑問はそのまま。
□ 続いて NTLDRの設定
NTLDR の設定は、c:\boot.ini というファイル(システム&隠し属性)に記載されている。 boot.ini の細かい話は Google 検索してください。
2.1. 先ほどの linux.pbr を c:\linux.pbr にコピー 2.2. c:\boot.ini をエディターで開く 2.3. OS の追加で c:\linux.pbr="GRUB -- Fedora Core3" 2.4. タイムアウトなどをお好みで設定して保存。
これでLinux も起動できるようになった。ということで、
□最後にGRUB側の設定
GRUBの設定は、/boot/grub/grub.conf というファイルに記載されている。 grub.info の細かい話は info grub してください。
3.1. grub.conf をエディターで開く 3.2.以下のエントリを最後の方に追加する。 title Windows XP rootnoverify (hd0,0) chainloader +1 3.3.タイムアウトなどをお好みで設定して保存。
ということで、めでたくデュアルOSのデュアルローダーによるデュアルブートのための設定が完了。
[動作確認]
1. マシン起動 → NTLDRが起動する 2. do { メニューから Fedora Core3 を選択する。 → GRUB 起動画面になる。 メニューから Windows XP を選択する。 → NTLDR起動画面になる。 満足したら好きなOSを起動しておしまい。 3. } while(1) /* 2. にもどる */
結好あそべる。