5.5. 遇到問題怎麼辦?

有四類的問題是在定製一個核心時可能會遇到的:

Config 程式回報錯誤

如果 config 程式回報錯誤,你可能只是打錯 或漏打幾個字。幸運的是,config 會顯示哪一行出 現問題,你可利用 vi 快速的解決掉這些問題。例 如出現:

    config: line 17: syntax error
你可以在 vi 的命令列模式輸入 17G 跳到第 17 行。比對 GENERIC 核心或是其他參考資料,以確 定你打對關鍵字。

make 程式執行失敗

如果 make 執行失敗,通常表示你的核心設定 出了問題,但是 config 並沒找出錯誤。一樣的, 檢查你的設定檔,如果你一直找不出問題,可以寄信給 FreeBSD general questions mailing list ,並附上你的核心設定檔,你應該可以很快收到回應。

核心無法正常開機

如果你的新核心無法正常開機,或是不能辨認出你的硬體裝置,別擔 心!FreeBSD 有一套相當完善的回復機制可以解決這個問題。只要在開機 命令列輸入你想啟用的核心名稱(例如 kernel.old ),而不是按 Enter(Return) 鍵跳過。在系統內保留一個可 以正常開機的核心,以備不時之需,是一個不錯的想法。

在用正悸漁痐葍}機後,你可以檢查你的核心設定檔,並嘗試再次建 立該核心。/var/log/messages 紀錄每次成功開 機時,核心產生的訊息。此外,dmesg(8) 則會列出該次開機的核心 訊息

Note: 如果你在編譯核心時遇到問題,確定你在系統內有保留一個 GENERIC 核心,或是其他你知道可正常開機的 核心。不要以為有 kernel.old 就夠了,因為 每次建立新核心時,kernel.old 會被最後一次 建立的 kernel 給覆寫過去,而這個核心有可能是有問題的。另外,最 好把目前的開機核心覆寫到 kernel,不然部分 程式如 ps(1) 將無法正常執行。接下來的指令介紹如何解除核心 的存取限制(以便把舊的核心覆寫回去):

    # chflags noschg /kernel

另外,如果你要設定核心,或是其他檔案的存取限制,以便他們不 被修改或移除,則可輸入以下指令:

    # chflags schg /kernel
核心運作良好,但是 ps 指令卻怪怪的?

如果你安裝不同版本的核心到系統上,例如在使用 3.1-RELEASE 的 系統上,裝了目前仍在實驗階段的 ``4.0'' 核心,許多查看 系統資訊的程式,像是 ps(1)vmstat(8) 將無法執行。你必 須重新編譯 libkvm 函式庫以及這些程式。切記 不要隨意從其他系統拷貝不同版本的核心來使用。