Linux Tips

LILOで複数のカーネルから1つを選択して起動するには

北浦訓行
2001/12/6

 カーネルを再構築したり、新バージョンのカーネルをインストールする場合、再構築がうまくできていないとシステムが起動しなくなる可能性がある。これを防ぐには、起動時にこれまでのバージョンのカーネルと新しく構築したカーネルを選択できるようにすればいい。そうすれば、新しいカーネルが動作しなくても古いカーネルで従来どおりLinuxを起動することができる。

 具体的には、古いカーネルと新しいカーネルを用意して/etc/lilo.confに両方のエントリを作成しておく。古いカーネルのラベル名を「old」、新しいカーネルのラベル名を「linux」にしておけば、システム起動時に「LILO: 」と表示されたときに、「old」と入力して[Enter]キーを押せば古いカーネルが、「linux」と入力して[Enter]キーを押せば新しいカーネルが起動する。ここでは、Red Hat Linux 7.1を例に、/etc/lilo.confの設定を紹介する。

 Red Hat Linux 7.1ではカーネル2.4.2-2が採用されているが、FTPサイトには2.4.3-12がアップロードされている。この2つのカーネルを使って起動を切り替えてみる。

 デフォルトの/etc/lilo.confは次のようになっている。

boot=/dev/hda
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
message=/boot/message.ja
linear
default=linux

image=/boot/vmlinuz-2.4.2-2
        label=linux
        initrd=/boot/initrd-2.4.2-2.img
        read-only
        root=/dev/hda5

 これの「image=」の行から下をコピーして、次のように変更する。

boot=/dev/hda
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
message=/boot/message.ja
linear
default=linux

image=/boot/vmlinuz-2.4.2-2
        label=old ←ラベルを「old」に変更
        initrd=/boot/initrd-2.4.2-2.img
        read-only
        root=/dev/hda5

image=/boot/vmlinuz-2.4.3-12 ←新しいカーネル
        label=linux
        initrd=/boot/initrd-2.4.3-12.img ←SCSIを使用しない場合は不要
        read-only
        root=/dev/hda5

 /etc/lilo.confの修正が終わったら、必ず/sbin/liloコマンドを実行する。

# /sbin/lilo
Added old
Added linux *

 システムを再起動し、LILOの画面が表示されたところで[linux]を選択すれば新しいカーネルが、[old]を選択すれば古いカーネルが起動する。

/etc/lilo.confで設定した2つのエントリ名が表示されている

Linux Tips Index



 Linux Squareフォーラム Linux Tipsカテゴリ別インデックス
インストール/RPM ブート/ブートローダ
ファイル操作 環境設定
ユーザー管理 コンソール/ターミナル
X Window System セキュリティ
トラブルシューティング 他OS関係
ネットワーク ハードウェア
Webサーバ Samba
GNOME KDE
OpenOffice.org エミュレータ
ソフトウェア そのほか/FAQ
全Tips公開順インデックス Linux Tips月間ランキング
Linux Squareフォーラム全記事インデックス

MONOist組み込み開発フォーラムの中から、Linux関連記事を紹介します


Linux & OSS フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Linux & OSS 記事ランキング

本日 月間