当前位置: 技术问答>linux和unix
我编译新内核后总是出现kernel panic,不知怎么回事!
来源: 互联网 发布时间:2015-10-19
本文导语: RT 是在Red hat linux 9 下编译 2.6.12版内核 make make modules make modules_install make install | 提醒一点:如果你准备按照我下面说的去做的话,请一定要先看完了再开始。否则多半会后悔没有听我的话,嘿嘿。...
RT
是在Red hat linux 9 下编译 2.6.12版内核
make
make modules
make modules_install
make install
是在Red hat linux 9 下编译 2.6.12版内核
make
make modules
make modules_install
make install
|
提醒一点:如果你准备按照我下面说的去做的话,请一定要先看完了再开始。否则多半会后悔没有听我的话,嘿嘿。
最近需要把redhat9.0的内核升级。
原来的内核版本为2.4.20,预计升级到2.6.8
先下载内核:www.kernel.org
在升级内核之前要先安装module-init-tools
于是下载,用module-init-tools-3.1竟然不能正确安装
真是ft,下了个3.0的就ok了。
于是
tar -xvzf module-init-tools-3.1
cd module-init-tools
make moveold //保存以前sbin中的lsmod modprobe等模块相关的可执行文
//件,其实就是在后面加了个.old
make all
make install
安装完成以后,把内核文件拷到/usr/src目录
解压缩后
make menuconfig //配置新内核,要是scsi硬盘的话,这里有点麻烦,按下不表
make bzImage //生成新内核的映像
make modules //编译需要的模块
make modules_install //安装新模块,就是拷贝到/lib/modules/2.6.8/目录下
make install //安装新内核,会将bzImage和System-2.6.8.map拷贝到/boot目录下,
//然后建立System.map到system-2.6.8.map的链接,再生成一个initrd-
//2.6.8.img文件到boot目录下,再修改grub.conf添加启动项
如果一切顺利的话,此时可以reboot了,看到一个2.6.8内核的启动项,从它启动就
进入新的内核了。
但是,很多时候事情总是不是按照我们希望的发展,可能有如下问题出现:
最多的就是启动的时候kernel panic 提示无法加载文件系统什么的。多半是驱动的
问题,有人说把grub.conf中的启动项修改一下,比如把 root=Lable=/ 改成root=/
或者root=/dev/sda3,还有说把initrd=initrd-2.6.8.img这一行去掉或者改成no initrd
都试过,好像不怎么好使。
1.在最后一步make install时,会出现找不到某个模块的情况
在vmwares的时候就出现找不到BusLogic模块的情况,因为vmwares默认情况下是
使用scsi硬盘的,需要在系统内核中加入scsi驱动。
需要在配置内核的时候把Device Driver中的scsi驱动编进内核中,而不是编译成模
块,即使这样,在make install的时候,依然可能出现找不到BusLogic的错误,此时
修改/etc/modules.conf文件,把其中包含BusLogic那一行用#注视掉。
然后再make install或者手动makeinitrd initrd-2.6.8.img 2.6.8,再自己修改
grub.conf文件,加入启动项。就ok了
2.我的曙光服务器,硬盘是74G的scsi硬盘,ultra320,驱动程序叫什么aic7904,
make install的时候提示找不到true模块,不晓得是什么东西,重新配置内核,把
scsi驱动支持加入内核,并且找到有个ultra320 的79**的驱动支持,也加进去了
然后确保ext2和ext3文件系统编译进内核了。
重新编译,安装内核。
重启以后,内核终于加载成功了,但启动到最后一步,就是快要登陆那一段的时候
出现个什么
id :1 init spawning too fast , disable for 5 minutes;
id :2 init spawning too fast , disable for 5 minutes;
id :3 init spawning too fast , disable for 5 minutes;
id :4 init spawning too fast , disable for 5 minutes;
id :5 init spawning too fast , disable for 5 minutes;
一直这么循环,我google了一下,说是什么显示设备和内核不兼容,说用
文字界面启动就可以了,我把init :5改成了3,依然不行 。
fait了。
但在虚拟机上的那个redhat9.0竟然成功启动了,还把gcc升级到了3.4.3。
最近需要把redhat9.0的内核升级。
原来的内核版本为2.4.20,预计升级到2.6.8
先下载内核:www.kernel.org
在升级内核之前要先安装module-init-tools
于是下载,用module-init-tools-3.1竟然不能正确安装
真是ft,下了个3.0的就ok了。
于是
tar -xvzf module-init-tools-3.1
cd module-init-tools
make moveold //保存以前sbin中的lsmod modprobe等模块相关的可执行文
//件,其实就是在后面加了个.old
make all
make install
安装完成以后,把内核文件拷到/usr/src目录
解压缩后
make menuconfig //配置新内核,要是scsi硬盘的话,这里有点麻烦,按下不表
make bzImage //生成新内核的映像
make modules //编译需要的模块
make modules_install //安装新模块,就是拷贝到/lib/modules/2.6.8/目录下
make install //安装新内核,会将bzImage和System-2.6.8.map拷贝到/boot目录下,
//然后建立System.map到system-2.6.8.map的链接,再生成一个initrd-
//2.6.8.img文件到boot目录下,再修改grub.conf添加启动项
如果一切顺利的话,此时可以reboot了,看到一个2.6.8内核的启动项,从它启动就
进入新的内核了。
但是,很多时候事情总是不是按照我们希望的发展,可能有如下问题出现:
最多的就是启动的时候kernel panic 提示无法加载文件系统什么的。多半是驱动的
问题,有人说把grub.conf中的启动项修改一下,比如把 root=Lable=/ 改成root=/
或者root=/dev/sda3,还有说把initrd=initrd-2.6.8.img这一行去掉或者改成no initrd
都试过,好像不怎么好使。
1.在最后一步make install时,会出现找不到某个模块的情况
在vmwares的时候就出现找不到BusLogic模块的情况,因为vmwares默认情况下是
使用scsi硬盘的,需要在系统内核中加入scsi驱动。
需要在配置内核的时候把Device Driver中的scsi驱动编进内核中,而不是编译成模
块,即使这样,在make install的时候,依然可能出现找不到BusLogic的错误,此时
修改/etc/modules.conf文件,把其中包含BusLogic那一行用#注视掉。
然后再make install或者手动makeinitrd initrd-2.6.8.img 2.6.8,再自己修改
grub.conf文件,加入启动项。就ok了
2.我的曙光服务器,硬盘是74G的scsi硬盘,ultra320,驱动程序叫什么aic7904,
make install的时候提示找不到true模块,不晓得是什么东西,重新配置内核,把
scsi驱动支持加入内核,并且找到有个ultra320 的79**的驱动支持,也加进去了
然后确保ext2和ext3文件系统编译进内核了。
重新编译,安装内核。
重启以后,内核终于加载成功了,但启动到最后一步,就是快要登陆那一段的时候
出现个什么
id :1 init spawning too fast , disable for 5 minutes;
id :2 init spawning too fast , disable for 5 minutes;
id :3 init spawning too fast , disable for 5 minutes;
id :4 init spawning too fast , disable for 5 minutes;
id :5 init spawning too fast , disable for 5 minutes;
一直这么循环,我google了一下,说是什么显示设备和内核不兼容,说用
文字界面启动就可以了,我把init :5改成了3,依然不行 。
fait了。
但在虚拟机上的那个redhat9.0竟然成功启动了,还把gcc升级到了3.4.3。
|
ext3模块没有编译到内核也会出现kernel panic
|
我现在就把ext3放在模块中了。
反正也不用,干吗还编译到内核里面去
反正也不用,干吗还编译到内核里面去