Mosoku's linux-challenging room
Home

ブートローダーって何 ?
Grub & lilo
どうやって起動させるの ?

Redhat9をインストールし、デュアルにとTurbolinux8をインストールしました。
起動時に2つのOSが選択できるものと思っていたのですが、Redhat9しか選択できませんでした。
ブートローダとして「Grub」をインストールしましたが、どうすれば2つのOSを選択できるようになるのか。
その悪戦苦闘を書いてみました。

  1. はじめに
  2. どこにインストールするの
  3. Redhat9を起動する
  4. Turbolinux8を起動する
    1. ブートディスクで起動
    2. grubコマンドで起動

  5. grubを編集する
  6. grub-起動選択



はじめに
Redhat9が公開されました。
ftpサイトからISOイメージをダウンロードし、CDRでISOイメージを作成しました。
早速というか、ジャンク品で購入したPCにインストールしてみました。
なんとか、Xを起動できる最小インストールができました。

これに気をよくして同じPCに2Gのハードを取り付け、Turbolinux8をインストールしました。

1台のPCに2つのハードを取り付け、2つのlinuxをインストールというわけです。
デュアルブートで最新のlinuxを楽しもうというわけです。
この2つ、または複数のOSを切り替えて起動させるのが「ブートローダ」というものらしいです。
これには、「Lilo」「Grub」というものがあります。

ブートローダのインストール
今回、Redhat9をインストールするときには、「Grub」という「ブートローダ」を選択しました。



そして、問題は、これをどこにインストールするかなのですが、
「dev/hda上にインストール」を選択しました。

インストール場所として、
  • MBRにインストール
  • ルートパーティションの先頭セクタにインストール
があるのですが、「MBR」にインストールする場合だと他のlinuxとデュアルにする場合には起動しないことがあるようなことが書いてありましたので、「ルートパーティションの先頭セクタ」として「dev/hda上にインストール」を選択しました。

これを選択しておけば後から「Turbolinux」をインストールしてもデュアルにOSを選択切り替えし起動できるだろうと思いました。

Redhat9を起動
まず、Redhat9のみインストールした場合の「Grub」のブート画面です。


Redhatしかインストールしていませんので、ここで「Enter」すれば、Redhatの起動となっていきます。
因に、以下の画面はグラフィカルログイン画面です。


この状態に「Turbolinux」をインストールしデュアルにしようとしました。
Turbolinux8を起動
「Turbolinux」をインストールする場合にもブートローダのインストールする場所は、「ルートパーティションの先頭セクタ」にインストールしました。
ただ、セカンドドライブになりますので、
「dev/hdb」上となりました。
  • マスターのハード「hda」には,Redhat9
  • スレイブのハード「hdb」にはTurbolinux8
というわけです。
それぞれの「ルートパーティションの先頭セクタ」にGrubをインストールした状態になりました。
さあ、これでRedhatとTurboを切り替えて楽しめるぞと思いました。

が、簡単じゃなかったです。
boot画面は、Redhat9のみの「Grub」の画面でした。

「Lilo」でインストールした場合には、OSの切り替え画面が出てきたのですが。
因に、以下の画像は「Vinelinux2.1.5」と「Windows95」とのデュアル選択画面です。


以下は「Vinelinux」での「lilo.conf」の内容です。

boot=/dev/hda
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
message=/boot/message
#append="apm=on"
append="mem=128M"
# default=linux
default=dos

image=/boot/vmlinuz-2.2.18-0vl4.2
label=linux
read-only
root=/dev/hdb5

other=/dev/hda1
label=dos


これと比較するために、「Redhat9」での「grub.conf」の内容は次のようになっていました。

# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/hda2
# initrd /initrd-version.img
#boot=/dev/hda
default=0
timeout=10
splashimage=(hd0,0)/grub/splash.xpm.gz
title Red Hat Linux (2.4.20-8)
root (hd0,0)
kernel /vmlinuz-2.4.20-8 ro root=LABEL=/
initrd /initrd-2.4.20-8.im


ブートディスクで起動
折角「Turbolinux」を入れたのに起動選択画面にないのならどうしようもないじゃないか。
そこで、登場するのが、インストール中に作成した「ブートディスク」でした。
「ブートディスク」をFDドライブに挿入したまま起動すると「Grub」の画面もなしに「Turubolinux」が起動しました。

でも、毎回毎回ブードディスクから起動しなきゃならないんだろうか。
「lilo.conf」のようにOSを切り替えれるよに「grub.conf」を編集すればいいのだろうか。
しかし、ひとつ編集を間違えると起動しなくなるようでは困りものだ。

「lilo」のときに大きなトラブルがあった。
カーネルをアップし、「lilo」をリロードせずに再起動させたところカーネルパニックでどうしようもできなくなった経験がありました。
ブートディスクで起動しても同じところで止まってしまいました。
結局このときには再インストールということになってしまいました。
よくわらないうちは手を出さない方が大きな火傷をしないということでしょうね。

Grubで起動
なんとかしたい。
ネットで検索してたところ、「Grub」の起動画面でコマンド入力すると別のOSが選択起動できるということがわかりました。

早速のチャレンジとなりました。
まず、「Turbolinux」のブートセクタを調べなきゃならない。
インストール時に「Grub」を選択インストールしているから「Turbolinux」内の「grub.conf」がどうなっているかをみればいいわけだ。
以下、「Turbolinux」内の「grub.conf」です。

# This file was converted from /etc/lilo.conf by gilo-0.91-9.
timeout 15
default 0
fallback 1
splashimage (hd1,1)/grub/splash.xpm.gz
# keymap for jp106
setkey doublequote at
setkey ampersand caret
setkey quote ampersand
setkey parenleft asterisk
setkey parenright parenleft
setkey tilde parenright
setkey equal underscore
setkey plus colon
setkey colon quote
setkey asterisk doublequote
setkey bracketleft bracketright
setkey braceleft braceright
setkey bracketright backslash
setkey braceright bar
setkey backslash equal
setkey underscore plus
setkey backslash bracketleft
setkey bar braceleft
setkey F9 equal
setkey F10 bracketleft
setkey equal k73
setkey bracketleft k7d

title TurboLinux8
kernel (hd1,1)/vmlinuz root=0343
initrd (hd1,1)/initrd

kernel (hd1,1)/vmlinuz root=0343
initrd (hd1,1)/initrd

の部分を起動時にコマンド入力すればいいことがわかりました。
本当かな?

さあ、早速やってみよう。
まずは、PCのスイッチを入れる。

ハード、CD各ドライブのチェック、キーボード、マウスのチェック画面があらわれる。
そして、問題の「grub」の画面と切り替わる。

悲しいかな、「Turbolinux」をインストールしたにも関わらず起動選択画面には「Redhat」しか出てこない。

そこで、キーボードから「c」を打ち込む。

すると、次のようなコマンド入力画面に切り替わる。



grub <

と出てくる。
この後どう入力すればいいのか。
ここで登場するのが、「Turbolinux」の「grub.conf」の一部だ。

kernel (hd1,1)/vmlinuz root=0343
initrd (hd1,1)/initrd

を入力すればいいことをネットで検索して掴んだ。さあ、入力だ。
まず、rootコマンドで「hd1」を指定。
grub < root (hd1,1)

続いて
grub < kernel (hd1,1)/vmlinuz root=0343
と入力。
でも簡単じゃなかったです。

「(」(カッコ)が入力できないというより、キーボードの「(」を打っても別のキーが入る。
因に、「(」は、隣の「)」を「Shift」と一緒に打つと「(」になった。
「=」もそうだった。隣の「^」を打つと「=」になった。こちらは、「Shift」なし。
「)」は、隣の「0」を「Shift」と一緒に打つ。
日本語キーボードとして認識されていないため配列がでたらめだった。


入力にエラーがなければ、「Enter」で次の画面。


続いて、
grub < initrd (hd1,1)/initrd
と入力。

そして、「Enter」。



grub<
とだけ出る。いよいよ起動だ。

grub< boot
と入力し、「Enter」。


「ハード」などのチェック後、「Turbolinux」の設定読みこみ画面。
「Welcome to Turbolinux」で起動成功を確認!!



テキストログインを選択したため次のような画面になる。


最後は、ユーザー名とパスワードを入力し起動完了だ。これは略。
長く書いたけど、

「grub」の起動画面でまず
「c」を入力。
コマンド画面への切り替えとなります。
そして、

grub < root (hd1,1)
grub < kernel (hd1,1)/vmlinuz root=0343
grub < initrd (hd1,1)/initrd
grub < boot


ただし、(hd1,1)は私のインストールした環境。

以上は、すんなり書いたけど実際にはエラーが何回も出て何回もやり直した。

エラーがでても慌てない。
どうしても出来ない場合には「Esc」で最初の「grub」の画面に戻る。
そして、「Enter」で「Redhat」を起動だ。

起動方法のまとめ−−−
デュアルブートで2つのOSをインストールし、これを切り替えて起動させる方法
(1) インストール時に作成したブートディスクで起動する
(2) Grub起動画面でコマンド入力し起動する
最後は、
(3) Grub起動画面でOSをカーソル選択し起動する

これは、コマンド入力で起動できることが確認できたから、「grub.conf」に追加OSを記入すればいいはずだ。
最終の詰めというわけです。

Grubを編集する
どう編集すればいいのか。もし編集して起動しないようなことになれば大変だ。
とりあえず、ネットで検索してみた。
「ZDNet」のlinuxのページに「ブートローダ」の項目があり、次のページに
http://www.zdnet.co.jp/help/howto/linux/redhat7_2_grub
以下の記述があった。
一部抜粋

メニュー項目が上記の1つしか用意されていないが,必要であれば複数個のtitleで始まる行を用意すればよい。その場合には,ブート時にGRUBによって複数の起動メニューが読み込まれ,表示されたメニューから1つを選んでOS起動させることができる。

ちょっと?心配だったけど、思い切って「Turbolinux」の「grub.conf」のtitle行以下をコピーした。
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/hda2
# initrd /initrd-version.img
#boot=/dev/hda
default=0
timeout=10
splashimage=(hd0,0)/grub/splash.xpm.gz
title Red Hat Linux (2.4.20-8)
root (hd0,0)
kernel /vmlinuz-2.4.20-8 ro root=LABEL=/
initrd /initrd-2.4.20-8.im

# (追加部分)
title TurboLinux8
kernel (hd1,1)/vmlinuz root=0343
initrd (hd1,1)/initrd


Grub−起動選択
保存後いよいよ再起動だ。
無事起動画面が出た。
そして、ちゃんと2つのOSの選択画面となった。

ああ、疲れた。


Top
************** Home **************



SEO [PR] !uO z[y[WJ Cu