如果你的新核心无法正常开机,或是不能辨认出你的硬体装置,别担心!FreeBSD 有一套相当完善的回复机制可以解决这个问题。只要在开机命令列输入你想启用的核心名称(例如
kernel.old ),而不是按 Enter(Return) 键跳过。在系统内保留一个已知可以正常开机的核心,以备不时之需,是一个不错的想法。
Hit [Enter] to boot immendiately, or any other key for command prompt.
Booting [kernel] in 9 seconds...
这时候按 Enter 键以外的按键,就会出现;
Type '?' for a list of commands, 'help' for more detailed help
ok
接下来就载入旧的核心 kernel.old,这是表示前一版的核心
ok boot kernel.old
或是想要载入 kernel.GENERIC,也就是最初的核心
ok boot kernel.GENERIC
在用正常的核心开机后,你可以检查你的核心设定档,并尝试再次建立新核心。/var/log/messages 纪录每次成功开机时,核心产生的讯息。此外,dmesg(8)
则会列出当次开机的核心讯息
Note: 如果你在编译核心时遇到问题,确定你在系统内有保留一个 GENERIC 核心,或是其他你知道可正常开机,
而且不会在你建立新核心时被覆盖过去的核心。不要以为有 kernel.old 就够了,因为每次建立新核心时, kernel.old 会被前一次建立的
kernel 给覆写过去,而这个核心有可能是有问题的。另外,如果你用旧的、可用的核心来开机,记得把目前的开机核心覆写到 kernel,不然部分程式如
ps(1) 将无法正常执行。接下来的指令介绍如何解除核心的存取限制(以便把旧的核心覆写回去):
# chflags noschg /kernel
另外,如果你要"锁定"核心或是其他档案的存取限制,使它们不会被修改或移除,则可输入以下指令:
# chflags schg /kernel