Kernelのバージョンアップと再構築をしましょう。
以後の作業はスーパーユーザーになって行います。最新のソースコードをここからダウンロードして、/usr/src/ に置きます。そして古い/usr/src/linux を消去します。
#cd /usr/src/ # rm -rf linux
そしてダウンロードしたソースファイルを展開します。
# cd /usr/src/ # tar zxvf linux-2.3.31.tar.gz
ここで新たに、/usr/src/linux というディレクトリができますから、これを /usr/src/linux-2.3.31 にリネームして、/usr/src/linux は消去します。
# cp -R linux linux-2.3.31 # rm -rf linux
そして、リンクをはります。
# ln -s linux-2.3.31 linux
なお、RHL6.1の場合は、コンパイル後のカーネルは /boot に置かれるので、/usr/src/linux-2.3.31/Makefile を一部書き換えます。Slackware は、/ に置かれるので書き換える必要はありません。
# cd /usr/src/linux-2.3.31 # vi Makefile ----- #INSTALL_PATH=/boot --> 先頭の#を削除してアンコメントする。
これで準備はとりあえず終わりました。次にmake mrproper の後、make menuconfigでオプション設定を行います。
# cd linux # make mrproper # make menuconfig
そしてハードに合わせてオプションを設定してください。設定が終わったら、saveして抜け出て下さい。オプションの詳しい設定方法は成書に譲ります。そしてmakeします。
# make dep; make clean; make modules; make modules_install
最新のマシンなら数分でmakeが終わるとおもいます。ここでerrorが出るようなら、選んだオプションに問題があることが考えられます。そして、make bzlilo して新しいカーネルをインストールします。
# make bzlilo
これも十数分で終わると思います。このままリブートしてもいいのですが、新しいカーネルでブートできないことを想定してlilo.confを書き換えます。ただ、bzlilo の場合は、lilo.conf も書き変わっています。 その前に、/boot に、新しく vmlinuz ができていることを確かめてください。また古い vmlinuz は、vmlinuz.old と名前を替えてあるはずです(リンクの場合もあります)。そこで、/etc/lilo.confをみて、だいたい次のように変わっていることを確かめます。そして、/sbin/lilo します。
----- image=/vmlinuz label=linux root=/dev/hda1 read-only image=/vmlinuz.old label=old root=/dev/hda1 read-only ----- # lilo
これで、もし、新しいカーネルで起動不可能に陥った場合でも、oldとtypeすれば古いカーネルで起動できます。