This is an archive of past FreeBSD releases; it's part of the FreeBSD Documentation Archive.

問題が起きた場合には

9.6. 問題が起きた場合には

カスタムカーネルを作る場合に起きるトラブルは, 次の 4 種類に分けられます.

config コマンドの失敗

カーネルコンフィグレーションファイルに設定を行なってから config コマンドが失敗したのであれば, おそらくファイルのどこかに単純な間違いがあります. さいわい, config はトラブルの起きた行番号を出力しますので vi で素早く見つけることができます. 例えば, 次のように出力された場合

config: line 17: syntax error

vi のコマンドモードで 17G とタイプすれば, 問題のところへ飛ぶことができます. GENERIC カーネルのファイルや, 他のリファレンスと比較して注意深く修正してください.

make コマンドの失敗

make コマンドが失敗した場合には, カーネル設定で config がとらえられなかったような間違いをしていることが多いようです. もう一度コンフィグレーションファイルを見直してください. それでも問題を解決することができなければ, FreeBSD general questions メーリングリスト へあなたのカーネルコンフィグレーションファイルをつけてメールしてください. 誰かが素早く間違いを見つけてくれるでしょう.

カーネルが起動しない

新しいカーネルが起動しなかったり, デバイスの認識をしない場合でもあわてないでください! さいわい, BSDは 利用できないカーネルから復帰する 洗練されたメカニズムがあります. それは, FreeBSD のブートローダで起動したいカーネルを選択する (例えば boot kernel.old) だけです. カーネルの再設定をおこなう場合にはいつも, 確実に動くことが分かっているカーネルを用意しておくようにすると良いでしょう.

問題のないカーネルで起動した後に あなたのコンフィグレー ションファイルを調べ, 再び構築を試みてください. /var/log/messages ファイルにはすべての成功した 起動時のカーネルメッセージやその他の記録があり, これ は助けになる情報の一つでしょう. また, dmesg(8) コマンドは現在の起動時のカーネルメッ セージを出力します.

Note: カーネルの構築中にトラブルが起きた時に使うために GENERICや他のカーネルを次の構築で消されない ように異る名前で保存するようにしてください. kernel.old は新しいカーネルをインストールする 時に, その一つ前にインストールしたうまく動かないかもしれ ないカーネルで上書きされてしまいますので当てにできませ ん. またできる限り早く動作しているカーネルを本来の kernelの位置に移動させてください. そうしないと ps(1) のようなコマンドが正しく動きません. make でインストールされたカーネルのファイルを (別のカーネルに戻すために) ``アンロック'' するための特別 のコマンドは

# chflags noschg /kernel

です. また, 新しい置き換えたカーネルあるいは重要ファイ ルを動かしたり変更されないように ``ロック'' するには 次のようにします.

# chflags schg /kernel
カーネルは動くが ps は動かない!

システムユーティリティと異る バージョンのカーネルをインストールした場合, 例えば 4.x のカーネルを 3.x システム上にインストールするような場合, ps(1)vmstat(8) のような多くの システムステータスコマンドは動かなくなります. libkvm を再コンパイルして, これらのユーティリティを作りなおす必要があります. これは, カーネルとそれ以外で異なるバージョンを組み合わせて オペレーティングシステムを使用することが推奨されない理由の 一つとなっています.