在kernel升级前,看了好多资料,做了充分的准备,原本打算用rhel5.3升级学习,只是rhel5.3的那台vm老是被同事close,再则没有rhel5.3的iso,做yum或到mirrors上下载一些rpm包要转过去,怕麻烦,于是自己的机子用kvm安装了一个rhel5.1的vm,下面主要是我的update过程,以便将来参考。

1、 下载

从www.kernel.org下载full source包,上传到vm,必须在文本模式下,ssh或alt+f2等。

linux内核升级kernel update 3.2_内核升级

2、 update前查看版本

linux内核升级kernel update 3.2_linux_02

3、 安装前准备

需要gcc、ncurses、ncurese-devel、/usr/src/下要有kernel

linux内核升级kernel update 3.2_职场_03

上图没有满足条件,必须安装

linux内核升级kernel update 3.2_休闲_04

4、install

linux内核升级kernel update 3.2_休闲_05

转到/usr/src/linux-3.2-rc3/ 目录下

#make menuconfig

我多选择了一个mount支持ntfs的选项,其它的默认。(注:一定要看后面5,不然你会后悔)

linux内核升级kernel update 3.2_休闲_06

linux内核升级kernel update 3.2_kernel 3.2_07

linux内核升级kernel update 3.2_职场_08

接下来就make && make modules_install && make install &&make clean

make mrproper 是清理过程,我是第一次升级,没有重复升级过,所以不需要此命令。

linux内核升级kernel update 3.2_休闲_09

有old文件,是为了截图,运行了两次make install

linux内核升级kernel update 3.2_休闲_10

linux内核升级kernel update 3.2_休闲_11 linux内核升级kernel update 3.2_休闲_12

 5、排错

如果以为上面能启动,那就错了。出现下图无法启动。

linux内核升级kernel update 3.2_休闲_13

 http://hi.baidu.com/mhlovejn/blog/item/7a4a55fe65de7488b801a020.html/

幸亏有这位老鸟的深入研究,不然又不知所为何故了。

没办法,重新编译升级,

make mrproper && make menuconfig  ,选上下图的两个Enable

linux内核升级kernel update 3.2_linux_14

 

再 make && make modules && make modules_install && make install && make clean

重启登录kernel3.2成功,

linux内核升级kernel update 3.2_kernel 3.2_15

总结:其实kernel 的升级或者linux的其它软件安装、升级等都已经比较简单了,只是用户的环境问题、工具问题等因素造成各种问题。比如我在上面提到的用rhel5.3来升级,由于无法上网、没有rhel5.3的iso,只有rhel5.1的iso,于是开始用rhel5.1的包去rhel5.3安装gcc、ncureses等,结果部分so文件因版本问题conflict,如果用--force 或 --nodeps可能会造成的问题更多,所以update时出现了几种问题。

至于老版本要生成initrd.img的ram disk,其实也很好制作.

linux内核升级kernel update 3.2_kernel 3.2_16

将生成的test.img放入/boot下,将initrd.img 换成test.img即可启动。