您的位置:首页 > 运维架构 > Linux

Linux内核从2.6.18升级到2.6.28(最新)全过程

2009-09-02 17:13 330 查看
Linux内核从2.6.18升级到2.6.28(最新)全过程
作者:zccst

前面的话
为了支持虚拟化,需要先升级内核至2.6.20以后,在网上找到了一篇从2.4.X升级到2.6.X的经典文章,讲解的很详细,可是,我看完后还是吓了一跳:太复杂了。幸好,前人们不断改进,才使得从2.6.18升级到2.6.28(最新)变得如此简单。科技的力量就是这样,把原本复杂的事情变得简单,向那些默默的技术改进者致敬。

虽然标题是升级至2008年12月份发布的2.6.28版本,但本文亦适合于升级至最新版本使用。

内核升级前,我的系统配置情况:CentOS 5.3 内核版本:2.6.18-128.e15

内核升级开始
一、下载最新内核源码。
从内核官网下载至当前目录下
wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.28.tar.gz 注:大小为64M。其实现在最新版本已经达到2.6.30.5,如需,仅修改最后的版本号即可。如,
wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.30.5.tar.gz
二、解压内核源码,移动到合适的位置。
tar zxvf linux-2.6.28.tar.gz
mv linux-2.6.28 /usr/src/kernel
注:如果你之前从未编译安装过源码,则/usr/src下没有kernel文件夹,只需新建一个即可。

三、编译安装内核源码(共五步)
1,make mrproper
用来消除原来编译的影响,对之前没编译过内核的可以跳过此步,但建议使用一下这条命令 。

2,make menuconfig
如果不定制模块,可跳过这一步。

这里有三种方式可以选择:
(1)make config 单行模式
(2)make menuconfig 图形模式
(3)make xconfig 基于xwindows模式
在此强烈推荐新手使用make menuconfig方式,

修改后,在图形界面的最后有这样两行:
Load an Alternate Configuration File
Save an Alternate Configuration File
现在选Save...那一行,并按回车。
在弹出的保存修改对话框会提示你,为以.config结尾的文件命名,你可以任意命名为xx.config
然后保存退出

注1:由于虚拟化不是默认安装,所以需要手动安装,到virtualization选项里自己选上才行。
注2:由于我英语水平太烂,没读懂修改保存对话框处的英文提示,结果导致修改没有保存,白忙了大半天。其实,也有办法知道修改有没有生效,可以用vi,或vim,或gedit编辑刚刚命名后生成的xx.config文件,查找virtualization,如果相关地方都是y,就说明修改已经保存。

3,make
编译内核,由于是完全编译,所以时间比较长,大概需要30分钟。

4,make modules_install
此命令只有在你进行配置的过程中,在回答Enable loadable module support (CONFIG_MODULES)时选了“Yes”才是必要的,其作用是将模块拷贝到需要的目录中。

5,make install
以前复制内核和System.map,及修改Grub.conf的步骤,都由make install自动实现。

四、安装完毕,重启。
reboot
在重启过程中,出现4秒倒计时界面时,不要选择默认,而是按“enter”键,你会看到,有新旧两个内核版本可以选择.

五、检测
uname -r
至此,Linux内核从2.6.18升级到2.6.28升级完毕。

注:内核升级的方式不只一种,对于RedHat系列,还有rpm方式。如果是Ubuntu,可以用apt-get来安装。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: