8.6. 如果發生錯誤
前一頁 | 章 8. 設定 FreeBSD 核心 | 下一頁

## 8.6. 如果發生錯誤

當編譯自訂核心時可能發生以下四種類型的問題：

`config` 失敗

  若 `config` 失敗，會列出不正確的行號。使用以下訊息為例子，需要與 `GENERIC` 或 `NOTES` 比對來確認第 17 行輸入的內容正確：

      config: line 17: syntax error

`make` 失敗

  若 `make` 失敗，通常是因為核心設定檔未提供足夠的資訊讓 `config` 找到問題。請仔細檢查設定檔，若仍不清楚問題，請寄發電子郵件給 FreeBSD general questions mailing list 並附上核心設定檔。

無法使用核心開機

  若新核心無法開機或無法辨識裝置並不要恐慌！幸好，FreeBSD 有良好的機制可以從不相容的核心復原。只需要在 FreeBSD 開機載入程式 (Boot loader) 選擇要用來開機的核心便可，當系統開機選單出現時選擇 “Escape to a loader prompt” 選項，並在指令提示後輸入 `boot `kernel.old`` 或替換為任何其他已經知道可以正常開機的核心名稱。

  使用好的核心開機之後，檢查設定檔並嘗試再編譯一次。`/var/log/messages` 是有用的資源，它在每次成功開機時會記錄核心訊息。同樣的，dmesg(8) 也會印出自本次開機後的核心訊息。

  ### 注意:

  在排除核心問題時，請確定留有 `GENERIC` 的複本，或者其他已知可以運作的核心，並使用不同的名稱來確保下次編譯時不會被刪除，這很重要，因此每當新的核心被安裝之後，`kernel.old` 都會被最後安裝的核心覆寫，有可能會無法開機。盡快，透過重新命名將可運作的核心目錄移動到目前運作的核心目錄。

      # mv /boot/kernel /boot/kernel.bad
      # mv /boot/kernel.good /boot/kernel

核心可運作，但 ps(1) 無法運作

  若核心版本與系統工具所編譯的版本不同，例如，有一個核心使用 -CURRENT 的原始碼編譯並安裝在 -RELEASE 的系統上，許多系統狀態指令如 ps(1) 及 vmstat(8) 將會無法運作。要修正此問題，請使用與核心相同版本的原始碼樹 (Source tree) 重新編譯並安裝 World。使用與作業系統其他部份版本不同的核心永遠不會是個好主意。

前一頁 | 上一層 | 下一頁
8.5. 編譯與安裝自訂核心 | 起始頁 | 章 9. 列印

本文及其他文件，可由此下載： ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/。

若有 FreeBSD 方面疑問，請先閱讀 FreeBSD 相關文件，如不能解決的話，再洽詢 <questions@FreeBSD.org>。
關於本文件的問題，請洽詢 <doc@FreeBSD.org>。