カーネル再構築の手順

必要なドライバを組み込んだり、不必要なドライバを取り外すため、 カーネルを再構築します。


カーネルコンフィギュレーションファイル

カーネルのコンフィギュレーションファイル (カーネルの内容を決めているソースファイル)は /usr/src/sys/i386/conf/GENERIC です。

FreeBSD 3.x-RELEASE の場合は、 PAO3 を入れたかどうかで変わって来ます。

さて、必要なデバイスを組み込んだり、 いらないデバイスを外したりするには、 カーネルコンフィギュレーションファイルを 編集してコンパイルする必要があります。 これをカーネルの再構築といいます。 カーネルコンフィギュレーションファイルの編集の仕方は 次の節から説明するとして、 ここではカーネルの再構築の流れを見ておきます。

カーネル再構築の流れ

1) カーネルコンフィギュレーションファイルのコピー

例えば、GENERIC カーネルを再構築するには、
# cd /usr/src/sys/i386/conf
# cp GENERIC MYKERNEL
などとして、MYKERNEL を編集します。 MYKERNEL はカーネルの名前で、普通はホスト名を大文字で書くようです。 でもただのファイル名なので、どういう名前をつけても構いません。 以後は、MYKERNEL という名前であるとします。

2) カーネルコンフィギュレーションファイルの編集

# vi MYKERNEL
詳しくは次の節から説明します。

3) コンパイルとインストール

# cd /usr/src/sys/i386/conf
# config MYKERNEL
# cd ../../compile/MYKERNEL
# make cleandepend (7.1-RELEASE では必要になってました)
# make depend
# make
# make install
古いカーネル /kernel は /kernel.old になり、 今作ったカーネルが新たに /kernel となります。

トラブルシューティング

新しいカーネルが起ち上がらないとき

起動して最初の方に(BootMgr を入れていたら、ブートの選択の直後に)
_
という表示がでるので、ここでスペースキーなど押します。 すると、
boot:
という表示がでるので、ここで /kernel.old と打ちます。

/kernel.old を /kernel に変える

/kernel は簡単に消されないようになっていて、 単に mv では名前変更できません。 chflags というコマンドを使います。
# chflags noschg /kernel
# mv /kernel /kernel.bad
# cp -p /kernel.old /kernel
# chflags schg /kernel

FreeBSD の部屋


Apr. 1, 2000