有四類的問題是在定製一個核心時可能會遇到的:
如果 config 程式回報錯誤,你可能只是打錯 或漏打幾個字。幸運的是,config 會顯示哪一行出 現問題,你可利用 vi 快速的解決掉這些問題。例 如出現:
config: line 17: syntax error
你可以在 vi 的命令列模式輸入
17G 跳到第 17 行。比對 GENERIC
核心或是其他參考資料,以確 定你打對關鍵字。如果 make 執行失敗,通常表示你的核心設定 出了問題,但是 config 並沒找出錯誤。一樣的, 檢查你的設定檔,如果你一直找不出問題,可以寄信給 FreeBSD general questions mailing list <freebsd-questions@FreeBSD.ORG> ,並附上你的核心設定檔,你應該可以很快收到回應。
如果你的新核心無法正常開機,或是不能辨認出你的硬體裝置,別擔 心!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
如果你安裝不同版本的核心到系統上,例如在使用 3.1-RELEASE 的 系統上,裝了目前仍在實驗階段的 ``4.0'' 核心,許多查看 系統資訊的程式,像是 ps(1)、vmstat(8) 將無法執行。你必 須重新編譯 libkvm 函式庫以及這些程式。切記 不要隨意從其他系統拷貝不同版本的核心來使用。