Kernel 再構築

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すれば古いカーネルで起動できます。

TOP PAGE