最新版はhttp://www.kernel.org/pub/linux/kernel/v2.4/の中にLATEST-IS-2.4.xxで対応すうするものをダウンロードします。今回の例では2.4.24でした。tar.gzとtar.bz2の2種類あります。bz2のほうが小さいのでこちらを落とします。
# cd /usr/src
# wget http://www.kernel.org/pub/linux/kernel/v2.4/linux-2.4.24.tar.bz2
# tar vjxf linux-2.4.24.tar.bz2
展開先のフォルダに移動してconfigします。
Red Hatにあわせてインストールディレクトリを指定します。
今までRed Hatが使っていたconfigを利用してconfigを引き継ぎます。
これなら今と少なくとも同じ機能は取り込まれます。
# cd linux-2.4.24
# pico Makefile
export
INSTALL_PATH=/boot << #コメントアウトを削除
# cp ../linux-2.4.20-24.9/configs/kernel-2.4.20-i686.config .config
linux-2.4.20-24.9はいままでのkernelソースディレクトリ。
# make oldconfig
必要に応じて細かな設定を見直します。削除・追加したい機能があれば・・・
# make menuconfig
(X wondowが使える場合には# make xconfigでもいいです)
コンパイルします。
# make dep
# make clean
# make bzImage
# make modules
インストールします。
# make modules_install
# /sbin/depmod -a << moduleにエラーがないか確認 今回は何もなし
# /sbin/installkernel 2.4.24 arch/i386/boot/bzImage System.map
ここで /bootを確認するとリンクも置き換わっているはず。
# ls -l /boot
System.map ->
System.map-2.4.24
System.map-2.4.20-24.9
System.map-2.4.24
initrd-2.4.20-24.9.img
initrd-2.4.24.img
vmlinuz -> vmlinuz-2.4.24
vmlinuz-2.4.20-24.9
vmlinuz-2.4.24
このinstallkernelコマンドをもう一度実行すると
System.map-2.4.24、vmlinuz-2.4.24はそれぞれ古いのは.oldとなる
grubに新しいkernelのtitleが記述されているか確認し、default=0で今回のkernel優先にします。
特にroot=が前回と同じか確認すること。問題ないとは思いますが・・・
# pico
/boot/grub/grub.conf
default=0
title Red Hat Linux
(2.4.24)
root (hd0,0)
kernel /vmlinuz-2.4.24 ro root=/dev/md1
initrd /initrd-2.4.24.img
title Red Hat Linux (2.4.20-24.9) RAID boot from /dev/md1
root (hd0,0)
kernel /vmlinuz-2.4.20-24.9 ro root=/dev/md1
initrd /initrd-2.4.20-24.9.img
いちおうはlinux-2.4のリンクも張りなおします。使っているのかなぁ・・・
# rm /usr/src/linux-2.4
# ln -s /usr/src/linux-2.4.24
/usr/src/linux-2.4
モニタを繋いで再起動しましょう。ssh接続では何がどうなるかわかりませんからね・・・・ 汗
# shutdown -r now
無事に立ち上がりました ほぉ 笑
感想としては所要時間がけっこうかかるなあ・・・ 3時間ほど(Celeron700+SDRAM128MB)。別にrpmが提供されている限りは必要ないって言えば必要ないんですよね。本家が春から出さなくなってもどこかで出るんだろうと期待してるんですが、それとは別に経験は必要と思ってやってみました。今回はredhatの前のバージョンのconfigそのままで不用なものを削ってkernelを軽くすることはしなかったけど、究極の自宅サーバーのハードにあったチューニングするならばやってもいいのかなって・・・あまり思いません (笑
|