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

linux 内核升级 centos

2012-10-13 14:08 459 查看


喜新厌旧不是一个贬义词!比如,对于linux来说~

虚拟机上装了一个centos 5.5,内核是2.6.18的。本着与时俱进的党的号召,闲的时候我想把我的内核升级一下了!于是度娘了一番,可是事情总是不能按照预期的轨迹走,生活却还得继续,自己摸索吧!

为了不由太大的跨越,我选择了升级到2.6.19.

1、在ftp://ftp.kernel.org/pub/linux/kernel/v2.6 上下载了2.6.19的内核linux-2.6.19.tar.bz2
2、cp linux-2.6.19.tar.bz2 /usr/src/kernel/ cp到/usr/src/kernel下 (有的发行版本没有kernel目录)

3、tar -jxvf linux-2.6.19.tar.bz2 解压到当前目录
4、配置内核。我建议有两种方法

a、直接make menuconfig,然后quit,save

(如果出现curses.h:没有那个文件或目录 编译中断 这种错误,可以执行sudo apt-get install libncurses5-dev libncursesw5-dev 或者
yum install ncurses-devel ncurses
来解决)

b、把/boot/config-2.6.18 直接cp到根目录下为.config
5、make

a/ 这个过程可能会遇到一些错误,但是在google上都能找到属于你错误的解决方法。比如我最难找的是CONFIG_DEBUG_MUTEXES这个宏没有打开而说的undefined reference to __mutex_unlock_slowpath 这个错误!

6、make bzImage

7、make modules

8、make modules_install

9、mkinitrd /boot/initrd-2.6.19 2.6.19

10、cp /usr/src/kernel/linux-2.6.19/arch/i386/boot/bzImage /boot/vmlinuz-2.6.19
11、vim /boot/grub/grub.conf

# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/VolGroup00/LogVol00
# initrd /initrd-version.img
#boot=/dev/hda
default=1
timeout=15
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.18-194.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-194.el5 ro root=/dev/VolGroup00/LogVol00 rhgb quiet
initrd /initrd-2.6.18-194.el5.img

在后面添加自己的启动项和内核
title CentOS (2.6.19-lin)
root (hd0,0)
kernel /vmlinuz-2.6.19 ro root=/dev/VolGroup00/LogVol00 rhgb quiet
initrd /initrd-2.6.19.img

OK,大功告成,reboot就可以啦!



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: