2022年8月、ホームページを全面リニューアルしました! 情報を分かりやすくお伝えできるサイト作りを目指してまいります。

LILOからGRUBへブートローダーを変更する!

Debian woodyからsargeへアップデートするとwoody標準のブートローダーがLILOであるため、LILOのまま引き継がれる。しかし、sargeではGRUBが標準であるため、今後のカーネルのアップデートを考えると何れにしてもLILOからGRUBローダーへアップデートした方が賢い選択のようだ。しかし、気をつけなければいけないのは、MBRを操作しなければいけないので慎重なアップデートが要求される。かといって、システムを再インストールするわけにもいかない。そんな場合に、旨くLILOからGRUBへアップデートする方法を、以下に紹介してみたい。


1.初めに

まず初めに、いっておくことがある。この作業は、LILOを削除しないので注意すること。LILOをあらかじめ削除しないでMBRへはGRUBを上書きする形となるので頭に入れておいていただきたい。


2.GRUBのインストール

1)バイナリパッケージのインストール

# apt-get install grub

2)設定ファイルを置くディレクトリを作る

# mkdir /boot/grub

3)設定ファイルのテンプレートをコピーする

# cp /usr/share/doc/grub/examples/menu.lst /boot/grub/


3.設定ファイルを編集する

# vi /boot/grub/menu.lst

#
# Sample boot menu configuration file
#

# Boot automatically after 30 secs.
timeout 30

# By default, boot the first entry.
default 0

## ## End Default Options ##

title Debian GNU/Linux, kernel 2.6.8-2-686
root (hd0,1)
kernel /boot/vmlinuz-2.6.8-2-686 root=/dev/hda2 ro
initrd /boot/initrd.img-2.6.8-2-686
savedefault
boot

title Debian GNU/Linux, kernel 2.4.18-bf2.4
root (hd0,1)
kernel /boot/vmlinuz-2.4.18-bf2.4 root=/dev/hda2 ro
boot

title Debian GNU/Linux, kernel 2.4.18-bf2.4 (recovery mode)
root (hd0,1)
kernel /boot/vmlinuz-2.4.18-bf2.4 root=/dev/hda2 ro single
boot

俺の menu.lst はこのように記述してある。テスト的にwoodyをインストールしてからsargeへアップデートしたので kernel-2.4.18-bf2.4から kernel-2.6.8 へアップデートした。
したがって、ここで設定してることは、ファーストブートがkernel-2.6.8でセカンドブートがkernel-2.4.18-bf2.4でサードブートがkernel-2.4.18-bf2.4のシングルモードである。


4.マスターブートレコードへインストールする

# grub-install /dev/hda

上記のコマンドを発行して、HDDのマスターブートレコード(MBR)へgrubを書き込む。


5.再起動して確認する

再起動して、旨く起動しない場合は、grubのメインメニューが表示されたら「e」を押してエディットモードに移行する。grubの設定を確認して間違いが有った場合は、次の6項を参照してgrubの設定を編集する。


6.grub設定ファイルの編集

5項のgrubのメインメニューからエディットモードに移行して編集が必要な場合には、以下の要領で編集する。

図1

■ grubのメインメニューからファーストブートにカーソルを合わせて「e」を押せば5項のエディットモードへ移行する。

図2

■ さらに、編集したい行に合わせて「e」を押せば、カーソルが現れてその行の項目が編集できる。「o」を押せばカーソル行の下に空白行が挿入される。

図3

■ 編集が終わったら、「Enter」を押して「b」で、そのまま起動する。

■ 旨く起動したら、編集内容を/boot/grub/menu.lstへ反映する。反映が終われば、次回起動時からその編集内容が反映されて旨く起動するようになる。

■ ワンポイント

# update-grub

このコマンドを発行すれば、システム状態を自動的に認識してmenu.lstを自動編集してくれるが、こいつがどうもいい加減なため、使わない方が良いと思う。使う場合は再起動後、grubのブートメニューからエディットモードに移行して設定確認が必要である。それを考えると使わない方が無難かもしれない。


7.grubに悪さをしないようにliloを殺しておく

kernelイメージの自動アップデートをしたとき、最後にliloの更新を聞かれるので「no」を選んで、liloコマンドを実行されないように気をつけること。万が一、liloコマンドが実行されてしまうとbootレコードに不具合を起こすし起動すら出来なくなる可能性があるので、以下の要領で既存のliloを殺しておくと安心だ。

# chmod 0 /sbin/lilo

# mv /sbin/lilo /sbin/lilo.old

# chmod 0 /etc/lilo.conf

以上

コメント