2段 lilo
2000.03.05
http://www.ns.musashi-tech.ac.jp/~inoue/Pages/Linux/lilo.2.lilo.html
http://www.ns.musashi-tech.ac.jp/~inoue/Pages/Linux/
http://www.ns.musashi-tech.ac.jp/~inoue/Pages/
池田@東北大数学さんの考案した2段liloとは、
1. MBRに書き込んだliloから、
2. チェーンローダchain.bを経由して、
3. パーティションの先頭に別途インストールしたliloを起動して、
4. そのliloがlinuxを起動する
方式のことである。この方式の利点は、
1. MSDOSのブートローダでは起動できない論理パーティションからの起動が可能。
2. MBRのブートローダが書き換えられても、各パーティション先頭のliloが起動で
きればlinuxが立ち上がる。
3. MBRのliloをインストールする際に、カーネルの位置情報が不要。
4. 複数のディストリビューションを使い分ける際に、そのカーネルを起動するた
めの2段目のliloを他のディストリビューションと関係なく自由に扱える。
というところにある。
あとの3つはMSDOS等のブートローダを使う利点でもある。
2つ目はMBRにインストールしたliloとは別にパーティション先頭にもインストールしておけば済むともいえるが、その場合起動可能なカーネルを含んだすべてのパーティションをマウントしそれらすべての情報を書いたlilo.confを用意して置く必要があるので3つ目の利点が失われよう。
1段目のliloのインストールには次のようなlilo.conf.mbrを用意する。
boot=/dev/hda
map=/boot/map.mbr
prompt
timeout=50
other=/dev/hda2
label=slackware
other=/dev/hda3
label=redhat
other=/dev/hda5
label=stampede
other=/dev/hda6
label=turbo
other=/dev/hda7
label=plamo
other=/dev/hda8
label=vine
other=/dev/hda1
label=dos
table=/dev/hda
このlilo.conf.mbrを使って、
/sbin/lilo -C lilo.conf.mbr
を実行すると、それを実行したときの/boot/boot.bと/boot/chain.bを使い、
/boot/map.mbrに情報を書き込んでMBRにliloがインストールされる。
上記のother=に指定しているのは、各ディストリビューションをインストールする際に2段目のliloをインストールしたパーティション。
2段目のliloのつもりで MBR にインストールしてはいけない。
せっかくの1段目が消えてしまう。
電源を入れて起動するとまず1段目のliloのプロンプトが現れるので、ここで各 label に指定した単語を入力すると、指定されているパーティション先頭の2段目の lilo のプロンプトが現れる。
2段目のインストールの状態で異なるだろうが、
boot=/dev/hda2
prompt
timeout=10
image=/boot/vmlinuz
label=linux
root=/dev/hda2
read-only
other=/dev/hda
label=back
であれば、linuxと入力するか10秒経つと自動的に /dev/hda2 をルートパーティションとして /boot/vmlinuz が起動する。
上記のようにother=/dev/hdaを記述しておけばbackと入力してMBRにある1段目の
liloに戻ることもできるだろう。(試してはいない。)
戻る