8.6. 如果发生错误

当编译自定义核心时可能发生以下四种类型的问题:

config失败

config失败,会列出不正确的行号。使用以下信息为例子,需要与GENERICNOTES比对来确认第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。使用与操作系统其他部份版本不同的核心永远不会是个好主意。

本文档和其它文档可从这里下载: ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

如果对于FreeBSD有问题,请先阅读 文档,如不能解决再联系 <questions@FreeBSD.org>.

关于本文档的问题请发信联系 <doc@FreeBSD.org>.