注意: 任何的SCSI 控制器都使用相同的设备节点,所以您无须重新建立节点。另外,
网卡和SLIP/PPP
虚拟设备并没有任何设备节点,所以您不必担心节点问题。
----------------------------------------------------------------------
9.6 出现问题怎么办?
在定制一个内核时,可能会出现五类问题。他们是:
配置错误:
当您给config
命令传递您的内核描述时出错,您可能在某个地方发生了一个小错误。
幸运的是,config会显示出错的那一行的行号,您能很快找到出错地点并用vi
编辑器做修改。例如,假如您
看到:
config: line 17: syntax error
您能够在vi 的命令模式输入17G 来跳到17 行(也就是出错的那行)。和比较GENERIC
内核或其他参考资料, 以确定您没有打字错误。
编译错误:
假如编译命令失败,通常会在您的内核描述中提示一个错误,但config并没有能力找出
错误。另外,查看一下您的配置信息,假如您仍然无法解决这个问题,能够把您的
内核配置文档发到FreeBSD
常规问题邮件列表<freebsd-questions@FreeBSD.org>,
他将很快地被解决。
安装新内核失败:
假如内核编译成功,但安装失败(make install 或是 make installkernel
命令失败),
第一件要检查的事情就是您的系统运行的安全级别是否是 1或更高。内核的安装需要
移除内核的不可变信号
量,并用新内核的不可变信号量代替。而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 库连同这些
程式。千万不要随意从其他系统拷贝不同版本的内核来使用。
----------------------------------------------------------------------
译者注:第一次,翻译这么长的文章,错误之处在所难免;欢迎指正!
顾宏军
2003/11/26
http://www.cnfug.org)
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!




