用rpm方式将RHEL6.1内核升级到RHEL6.2 Bate内核

2011年10月11日 Linux基础 评论 7 条 阅读 18,664 views 次

就在前几天,RHEL6.2 Bate版出来了。正好这两点在写软件包的安装相关博文,里面有提到内核的RPM方式升级,但实验的时候,发现用rpm方式将RHEL6.1内核升级到RHEL6.2 Bate内核的时候有些问题,所以就写下来,与大家分享。

用RMP包方式升级内核的过程其实很简单,但由于BUG的原因没有能够顺利进行。折腾了一会最终解决了问题。下面进入今天的正题:用rpm方式将RHEL6.1内核升级到RHEL6.2 Bate内核。


一、准备内核的相关RPM软件,并安装kernel-firmware

安装新内核的kernel,需要用到kernel-firmware的依赖关系。所以我们要把这两个RPM包都下载下来(感谢群友Devilkin℡给我提供这两个软件)。

[root@yufei kernel]# ls
kernel-2.6.32-202.el6.x86_64.rpm  kernel-firmware-2.6.32-202.el6.noarch.rpm

在安装kernel就必需先安装kernel-firmware,那么我们就先来安装他,看看会出现什么问题?

[root@yufei kernel]# rpm -ihv kernel-firmware-2.6.32-202.el6.noarch.rpm 
warning: kernel-firmware-2.6.32-202.el6.noarch.rpm: Header V3 RSA/SHA256 Signature, key ID f21541eb: NOKEY
Preparing...                ########################################### [100%]
	file /lib/firmware/isci/isci_firmware.bin from install of kernel-firmware-2.6.32-202.el6.noarch conflicts with file from package kernel-firmware-2.6.32-131.0.15.el6.noarch
	file /usr/share/doc/kernel-firmware-2.6.32/WHENCE from install of kernel-firmware-2.6.32-202.el6.noarch conflicts with file from package kernel-firmware-2.6.32-131.0.15.el6.noarch

提示也没有什么错误信息,只是说两个文件是存在的。但其实这个kernel-firmware是没有安装上的。

[root@yufei kernel]# rpm -ivh kernel-2.6.32-202.el6.x86_64.rpm 
warning: kernel-2.6.32-202.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f21541eb: NOKEY
error: Failed dependencies:
	kernel-firmware >= 2.6.32-202.el6 is needed by kernel-2.6.32-202.el6.x86_64

这个原因在官方的BUG上面有提到,具体请到这里查看,主要的解决办法是用rpm -Uvh来代替rpm -ivh安装kernel-firmware。然后再安装kernel。

kernel-firmware

这就是解决问题的关键,否则无论如何都无法进行安装kernel的,感谢群友小魔怪的帮助。

于是用rpm -Uvh kernel-firmware-2.6.32-202.el6.noarch.rpm 来安装

[root@yufei kernel]# rpm -Uvh kernel-firmware-2.6.32-202.el6.noarch.rpm 
warning: kernel-firmware-2.6.32-202.el6.noarch.rpm: Header V3 RSA/SHA256 Signature, key ID f21541eb: NOKEY
Preparing...                ########################################### [100%]
   1:kernel-firmware        ########################################### [100%]
[root@yufei kernel]# 

呵呵,已经没有什么提示了,我们来查一下,发现他也安装上了  

[root@yufei kernel]# rpm -qa |grep kernel-firmware
kernel-firmware-2.6.32-202.el6.noarch
[root@yufei kernel]# 

二、安装新内核kernel


在安装了kernel-firmware的基础上,安装新内核就方便多了。

[root@yufei kernel]# rpm -ivh kernel-2.6.32-202.el6.x86_64.rpm 
warning: kernel-2.6.32-202.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f21541eb: NOKEY
Preparing...                ########################################### [100%]
   1:kernel                 ########################################### [100%]
[root@yufei kernel]# 

注意:这里不要用rpm -Uvh。原因就是,用U参数,就直接把原内核升级了,而用i则是安装了新的内核,原内核依然是存在的。这样防止了新内核故障的产生。

[root@yufei kernel]# rpm -qa |grep kernel
kernel-firmware-2.6.32-202.el6.noarch
kernel-headers-2.6.32-131.0.15.el6.x86_64
kernel-2.6.32-131.0.15.el6.x86_64
kernel-devel-2.6.32-131.0.15.el6.x86_64
kernel-2.6.32-202.el6.x86_64
dracut-kernel-004-53.el6.noarch
[root@yufei kernel]# 

呵呵,两个内核都在。

三、检查GRUB里面的信息

这一步一般情况下,都会在menu.lst里面写入新内核的启动信息,为了确保新内核安装成功,我们还是再检查一下。

[root@yufei kernel]# cat /boot/grub/menu.lst 
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Red Hat Enterprise Linux Server (2.6.32-202.el6.x86_64)
	root (hd0,0)
	kernel /vmlinuz-2.6.32-202.el6.x86_64 ro root=UUID=d88d25c9-360e-42a8-b464-e16f93f8ef01 rd_NO_LUKS rd_NO_LVM rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 KEYBOARDTYPE=pc KEYTABLE=us crashkernel=auto rhgb quiet
	initrd /initramfs-2.6.32-202.el6.x86_64.img
title Red Hat Enterprise Linux (2.6.32-131.0.15.el6.x86_64)
	root (hd0,0)
	kernel /vmlinuz-2.6.32-131.0.15.el6.x86_64 ro root=UUID=d88d25c9-360e-42a8-b464-e16f93f8ef01 rd_NO_LUKS rd_NO_LVM rd_NO_MD rd_NO_DM LANG=zh_CN.UTF-8 KEYBOARDTYPE=pc KEYTABLE=us crashkernel=auto rhgb quiet
	initrd /initramfs-2.6.32-131.0.15.el6.x86_64.img

发现多了新内核2.6.32-202.el6.x86_64。

四、重新启动,切换到新内核,测试新系统

在重新启动前,我们先来看看旧内核的信息


kernel

[root@yufei kernel]# uname -r
2.6.32-131.0.15.el6.x86_64
[root@yufei kernel]# reboot

[root@yufei ~]# uname -r
2.6.32-202.el6.x86_64
[root@yufei ~]# 

新内核可以正常工作了。

五、介绍一下内核安装的相关文件


/lib/modules/里面有个2.6.32-202.el6.x86_64文件夹

[root@yufei ~]# ls  /lib/modules/
2.6.32-131.0.15.el6.x86_64  2.6.32-202.el6.x86_64

/boot/有2.6.32-202.el6.x86_64相关的文件

[root@yufei ~]# ls /boot/
config-2.6.32-131.0.15.el6.x86_64         symvers-2.6.32-202.el6.x86_64.gz
config-2.6.32-202.el6.x86_64              System.map
efi                                       System.map-2.6.32-131.0.15.el6.x86_64
grub                                      System.map-2.6.32-202.el6.x86_64
initramfs-2.6.32-131.0.15.el6.x86_64.img  vmlinuz
initramfs-2.6.32-202.el6.x86_64.img       vmlinuz-2.6.32-131.0.15.el6.x86_64
lost+found                                vmlinuz-2.6.32-202.el6.x86_64
symvers-2.6.32-131.0.15.el6.x86_64.gz
[root@yufei ~]# 

至此,内核升级完成。自己慢慢享受吧!

7 条留言  访客:4 条  博主:3 条

  1. 不错 我又学习到东西了 谢谢 飞哥!

  2. 飞哥,在哪下载 内核的rpm包呢?

  3. 升级内核好复杂

  4. avatar 柳水无崖

    飞哥,用yum update是不是能把内核和软件一起升级到最新?

给我留言

Copyright © 羽飞博客 保留所有权利.   Ality主题 皖ICP备14013844号-1

用户登录