2 FreeBSD手册——配置FreeBSD内核( 五 )


移除内核的不可变信号 量,并用新内核的不可变信号量代替 。而securelevel 1或
更高时,是不允许任何对系统不可变信号量的改变,内核的安装需要在securelevel 0
或更低时才能完成 。
内核无法启动:
如果你的新内核无法启动,或无法识别你的硬件,不要担心!幸运的是,FreeBSD 有一个
很棒的从错误内核恢复的机制 。简单的说就是,从FreeBSD 的启动loader 中,选择一个
你要使用的内核 。在 系统时间从10开始倒计时时,按下除Enter 之外的任何键, 输入
unload然后输入 boot kernel.old, 或者其 它任何能准确引导的内核的文件名字.当
配置一个内核时,记得在手头保留一个能正常启动的内核是个好主意。
在用一个好的内核启动后,你可以检查一下你的配置文件,再设法重新建立一个内核 。
看看/var/log/messages 文件会比较有帮助,它记录了每次成功启动的所有内核信
息 。同样,dmesg 命令会列出当前启动中的内核信息 。
注意: 你在编译内核时,确信手头保留着一个GENERIC 或其它名字的不会被下次构建
所覆盖的内核 。你不 能仅依靠kernel.old, 因为当你安装一个新内核时,kernel.old 会
被最后一次安装的内核(也许就是无法正 常工作的)所覆盖 。所以,尽快将当前正常工作
的内核移到适当的内核位置,否则ps等命令不会正常工作 。解开编译安装内核文件的正确
命令是:
# chflags noschg /kernel
如果该命令无效,可能是你的系统的安全级别大于0 。可在 /etc/rc.conf中把
kern_securelevel设置成 -1, 然后从启系统. 在新内核成功后,你可以把它再改回去 。
另外,如果你要设定内核或其它文件的访问限制,以使它不能被移动或修改,可以用
下面的命令:
# chflags schg /kernel
在5 。x中,内核不和系统不可变信号量安装在一起 。所以这对追查所遇问题来源使无济
于事的 。
内核工作,但ps 根本就不工作:
如果你安装了一个不同版本的内核到系统,例如,在3.x 系统中安装了4.x 内核,许
多系统内建的命令象ps 和vmstat 会根本不工作 。你必须重编译libkvm 库以及这些
程序 。千万不要随意从其它系统拷贝不同版本的内核来使用 。
【2 FreeBSD手册——配置FreeBSD内核】----------------------------------------------------------------------
译者注:第一次,翻译这么长的文章,错误之处在所难免;欢迎指正!
顾宏军 2003/11/26

推荐阅读