免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5427 | 回复: 3
打印 上一主题 下一主题

Linux内核编译升级----错误解决 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-07-07 10:19 |只看该作者 |倒序浏览
    本人因工作需要做过一段时间的linux内核的编译升级,以及内核的裁减,这当中有过许多故事,趁着有时间,一吐为快!

声明:
1、本文不是专门介绍内核编译过程的文章,相关资料请google搜索。重点介绍内核编译中遇到的错误和问题的解决方法。
2、 本文可能是自己编译内核中遇到的问题的解决方案,也可能因为硬件原因并不适合于你,所以仅供参考。

正文:
一、编译环境
内核:原版本RedHat AS4.5 (内核2.6.9-55)目标版本:2.6.18.8
硬件:IBM、超微服务器;公司定做的一套机器(三套机器都做过升级)
二、内核编译升级命令:
1、
make mrproper

2、
make menuconfig

3、
make

4、
make modules_install

5、
make install

三、内核选项的选择:
  内核选项的选择是决定内核升级成功的关键,执行make menuconfig,系统会自动根据当前的硬件和原内核版本中的选项选定目标版本(2.6.18.8)的选项,不做任何选项的改动,保存选项生成.config继续编译。不出意外的话,新内核都能成功启动,如果未能成功启动,那恭喜你,本文可能对你有莫大的帮助!

四、内核编译中遇到的错误以及解决方法

错误一:
错误提示:Kernel panicnot syncing :vfs:unable to mount root fs on unkownblock (0,0)
错误分析:initrd-*.*.img文件有问题;未能成功挂载真正的根文件系统。
解决方法:请你确认执行了make install 命令,我就因为没有执行这条命令而浪费了一周时间

错误二:
错误提示:Create root device  mkrootdev: label / not found
                     Mountingrootfilesystem
                     mount :error2 mounting ext3
                     mount :error 2mountingnone
                     switch root mount failed:22
                     umount  /initrd/dev failed :2
                     kernel panic-not synicncing :Attempted to kill  init .
(错误提示是不是有点长,貌似错误很多哦,其实可能就一个原因导致)
错误分析:1、根文件系统找不到挂载点 ,修改grub.conf文件为 root=/dev/ *

                    2
、硬盘驱动未能找到,请看看你机器的硬盘是都是 SATA盘,是的话同样恭喜你本文对你有帮助。


错误解决:
1.、修改grub.conf文件试试,具体修改点
root=/dev/*
*
指的是原系统中/分区的挂载点。修改后,重启进入新内核系统,估计十有八九又会遇到如下错误提示:

Mounting root filesystem
mount :error6 mounting ext3
mount :error 2 mountingnone
switchroot mount failed:22
umount  /initrd/dev failed :2
kernel panic-not synicncing :Attempted tokil  linit .
如果不幸被我言中,请接着往下看。
2、
硬盘驱动未能成功找到,SCSI驱动有问题。我在内核编译升级中遇到这个问题,对内核选项选了又选,方法试了很多种,总经理都亲自来做了几次,错误依旧。最终让我无意中选正确选项,成功升级内核。
具体选项是:Device Drivers--------SCSI
device support------SCSI
low-level drivers----Serial ATA
SATAsupport 选为 M,然后再选择相应的子选项,我选择了Intel PIIX/ICH  SATA support new)后机器就成功启动了。



错误三:
错误提示:Enforcing mode requested but no policy loaded. Halting now.
kernel panic - not syncing: Attenpted to kill init!
错误分析:原内核中启用了selinux,新内核未选择selinux的选项,不能成功启动。
解决方法:修改grub.conf文件,在root=LABEL=/ 后加入 enforcing=0

[ 本帖最后由 zbzq 于 2008-7-7 10:24 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2008-07-14 17:52 |只看该作者
看过,       呵呵~~~~
本版 有个精华贴,关于编译内核的,对于新手,相当不错

论坛徽章:
0
3 [报告]
发表于 2008-07-17 10:39 |只看该作者
不错,楼主擅于整理,我最近也是在做裁剪一个系统,遇到不少问题,可惜没有楼主这么勤快给整理下来
PS:楼上的,你的签名MM是谁?挺清纯的

论坛徽章:
0
4 [报告]
发表于 2011-06-09 22:10 |只看该作者
呵呵,看到了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP