| kernelのアップグレード |
kernelのアップグレードは基本的にやりたくない。 なぜなら、いきなり動かなくなってしまうおそれがあるから。 だけど、セキュリティーホールが見つかったりしたら、 アップグレードするべきである。
今回、kernel-2.4.2-2にセキュリティホールがあるとの報告が redhatのホームページにあったので思い切ってアップグレードに挑戦した。 しかし、ソースからのアップグレードではなく、rpmからだったので比較的 簡単におこなうことができた。
| ダウンロードとインストール |
2001.09.1の時点でredhatのセキュリティ情報は ここ にのっている。 ここから、kernelのrpmを引っ張ってくればよい。 このころは、kernel-2.4.3-12にアップグレードしろと書いてあった。 とくに開発する必要がない場合は、kernel-2.4.3-12.i386.rpmをダウンロー ドしてきてインストールすればよい。
# cd /usr/local/src/rpm # rpm -ivh kernel-2.4.3-12.i386.rpm Preparing... ########################################### [100%] 1:kernel ########################################### [100%]
| 起動用RAMディスク |
まずは、起動用RAMディスクを作成します。これは、kernelがmoduleを参 照するために必要なものです。mkinitrdコマンドで作成しましょう。 良くわからない人は、よくわからないまま、進めましょう。 僕も良くわかりません。
# mkinitrd /boot/initrd-2.4.2.img 2.4.2-2 # mkinitrd /boot/initrd-2.4.3.img 2.4.3-12
2.4.2と2.4.3の起動用RAMディスクが完成です。
| liloの設定 |
kernelが変わったことをliloに知らせて、 新しいバージョンのkernelで立ち上げるようにする。 また、古いバージョンでも立ち上げられるようにする。 以下に私の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.old read-only root=/dev/hda1 initrd=/boot/initrd-2.4.2.img image=/boot/vmlinuz-2.4.3-12 label=linux read-only root=/dev/hda1 initrd=/boot/initrd-2.4.3.img |
この設定により、linuxという名前の新しい2.4.3のkernelと linux.oldという名前の2.4.2のkernelができあがりである。 そして、linuxを立ち上げの際のデフォルトにしている。
最後にLILOをブートセクタに書き込む。
# lilo -v LILO version 21.4-4, Copyright (C) 1992-1998 Werner Almesberger 'lba32' extensions Copyright (C) 1999,2000 John Coffman Reading boot sector from /dev/hda Merging with /boot/boot.b Mapping message file /boot/message.ja Boot image: /boot/vmlinuz-2.4.2-2 Mapping RAM disk /boot/initrd-2.4.2.img Added linux.old Boot image: /boot/vmlinuz-2.4.3-12 Mapping RAM disk /boot/initrd-2.4.3.img Added linux * /boot/boot.0300 exists - no backup copy made. Writing boot sector.