次のページ
前のページ
目次へ
lilo には QuickInst と呼ばれる小さなスクリプトが付いている。
lilo のソースコードをターゲットシステムのソースディレクトリに
(解凍・)展開し、ROOT=/mnt/target ./QuickInst とコマンドを打ち込ん
で、このスクリプトを実行してほしい。スクリプトは、lilo をどういうふ
うにインストールしたいのかと尋ねてくるだろう。
気を付けてほしいのは、ROOT 変数をターゲットシステムのパーティションに
設定しているので、ファイル名はそこを基準に伝えるということである。それゆえ、
どのカーネルをデフォルトでブートしたいのかと聞かれたら、/mnt/target/boot/
bzImage ではなく、/boot/bzImage と答えてほしい。わたしは、その
スクリプトの中の小さなバグを見つけた。そのため、以下のように表示された。
./QuickInst: /boot/bzImage: no such file
しかし、これを無視しても、何の問題もない。
QuickInst を使ってどこにブートセクタを置くべきだろうか?リブートの
際には、ソースシステムかターゲットシステム、あるいはマシン上の他のシステムか
どれを起動するのかを選択できるようにしたい。それに、現在構築中の
lilo が新しいシステムのカーネルを起動するところを実際に見てみたい。
このふたつを同時に実現するにはどうすればいいのか?少し脇道にそれて、デュアル
ブートの Linux システムにおいて lilo が DOS をブートする方法を見てみ
よう。そうしたシステムでの lilo.conf ファイルはおそらく下記のように
なっているだろう。
prompt
timeout = 50
default = linux
image = /boot/bzImage
label = linux
root = /dev/hda1
read-only
other = /dev/hda2
label = dos
マシンが上記のように設定されているなら、bios によってマスターブートレコード
が読み込まれてロードされ、次に(ロードされたプログラムが) lilo の
ブートローダをロードし、それがプロンプトを表示する。もしそのプロンプト画面で
dos とタイプしたなら、lilo は hda2 からブートセク
タをロードして、それが DOS をロードする。
これからしようとしていることは、hda2 のブートセクタがそれとは異なる
lilo のブートセクタ(つまり QuickInst がこれからインストール
しようとしているセクタ)になるということを除けば、上記と全く同じことである。
ディストリビューションに付属の lilo が、構築したばかりの
lilo をロードし、その lilo が、先だって構築したカーネルを
ロードするということになる。再起動時には、lilo プロンプトをふたつ
見るわけである。
要点だけを言うと、QuickInst がブートセクタをどこに置くか聞いてきたら、
ターゲットシステム上のファイルシステムがあるデバイス名を答えるとよい。たとえ
ば、/dev/hda2 などである。
そして、ソースシステム上の lilo.conf を修正する。そうすると、以下の
ような行が加わる。
other = /dev/hda2
label = target
ここで lilo と打てば、これで初めて、ターゲットシステムが起動可能に
なったはずだ。
次のページ
前のページ
目次へ
|