10.6.如果发生了一些错误

在构建自定义内核时可能发生四类问题:

config 失败

如果 config 失败,它将打印出错误的行号。例如,对于以下信息,请确保第 17 行与 GENERICNOTES 中的内容相符:

config: line 17: syntax error

make 失败

  如果 make 失败,通常是由于内核配置文件中的错误,该错误不足以被 config 捕获。检查配置,如果问题不明显,请发送一封包含内核配置文件的电子邮件到FreeBSD 通用问题邮件列表

  内核无法引导:如果新内核无法引导或无法识别设备,请不要惊慌!幸运的是,FreeBSD 有一个从不兼容内核中恢复的出色机制。只需在 FreeBSD 引导加载程序中选择要引导的内核。当系统引导菜单出现时,选择 "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) 不起作用

  如果内核版本与已构建系统实用程序的版本不同,例如,在 -RELEASE 系统上安装了从 -CURRENT 源构建的内核,则许多系统状态命令(如 ps(1)vmstat(8))将无法正常工作。要解决此问题,请重新编译和安装系统,该系统使用与内核相同版本的源代码。使用与操作系统其他部分不同版本的内核通常是个坏主意。

最后更新于

FreeBSD 中文社区