做RHCE模拟题的时候,居然升级内核忘怎么做了,现在先转载一篇文章,回家后,多做几遍:
 
 
就在前几天,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的,感谢群友小魔怪的帮助。
于是用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
splashp_w_picpath=(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。
四、重新启动,切换到新内核,测试新系统
在重新启动前,我们先来看看旧内核的信息
 

[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 ~]# 至此,内核升级完成。自己慢慢享受吧!