yum和编译两种方式升级or降级Centos内核推荐

今天探讨用yum和编译两种方式升级或者降级内核版本:

升级:比如玩kvm,docker等虚拟化,centos内核则升级尤为重要(虽然2.6.x内核通过加载模块也可以玩,但是效果不如3.x)

降级:如果发现内核在危险漏洞列,降级内核则显得尤为重要。当然如果有特殊需求,也可以降级内核。

1、yum方式升级内核版本

1.1)查看当前系统内核版本

[root@node4~]#cat/etc/redhat-releaseCentOSrelease6.6(Final)[root@node4~]#uname-r2.6.32-504.el6.x86_64[root@node4~]#

1.2)准备yum源,并安装

#http://elrepo.org/linux/kernel/el6/x86_64/RPMS/(网址)#导入key如果已经修改了repo的gpgcheck=0也可以不导入keyrpm--importhttps://www.elrepo.org/RPM-GPG-KEY-elrepo.org#安装elrepo的yum源rpm-Uvhhttp://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm#安装kernel-lt(lt=long-term)yum--enablerepo=elrepo-kernelinstallkernel-lt-y你也可以装kernel-ml(ml=mainline)yum--enablerepo=elrepo-kernelinstallkernel-ml-y#ml(mainline)为最新版本的内核,lt为长期支持的内核。[root@node4~]#yum--enablerepo=elrepo-kernelinstallkernel-lt-y

查看boot分区:

附加:查看指定的内核版本:

[root@node4~]#yum--enablerepo=elrepo-kernellist|grepkernel**elrepo-kernel:hkg.mirror.rackspace.comdracut-kernel.noarch004-356.el6@anaconda-CentOS-201410241409.x86_64/6.6kernel.x86_642.6.32-504.el6@anaconda-CentOS-201410241409.x86_64/6.6kernel-firmware.noarch2.6.32-504.el6@anaconda-CentOS-201410241409.x86_64/6.6kernel-headers.x86_642.6.32-573.18.1.el6@updateskernel-lt.x86_643.10.104-1.el6.elrepo@elrepo-kernelabrt-addon-kerneloops.x86_642.0.8-40.el6.centosbasedracut-kernel.noarch004-409.el6_8.2updateserlang-kernel.x86_64R14B-04.3.el6epelkernel.x86_642.6.32-642.11.1.el6updateskernel-abi-whitelists.noarch2.6.32-642.11.1.el6updateskernel-debug.x86_642.6.32-642.11.1.el6updateskernel-debug-devel.i6862.6.32-642.11.1.el6updateskernel-debug-devel.x86_642.6.32-642.11.1.el6updateskernel-devel.x86_642.6.32-642.11.1.el6updateskernel-doc.noarch2.6.32-642.11.1.el6updateskernel-firmware.noarch2.6.32-642.11.1.el6updateskernel-headers.x86_642.6.32-642.11.1.el6updateskernel-lt-devel.x86_643.10.104-1.el6.elrepoelrepo-kernelkernel-lt-doc.noarch3.10.104-1.el6.elrepoelrepo-kernelkernel-lt-firmware.noarch3.10.104-1.el6.elrepoelrepo-kernelkernel-lt-headers.x86_643.10.104-1.el6.elrepoelrepo-kernelkernel-ml.x86_644.9.0-1.el6.elrepoelrepo-kernelkernel-ml-devel.x86_644.9.0-1.el6.elrepoelrepo-kernelkernel-ml-doc.noarch4.9.0-1.el6.elrepoelrepo-kernelkernel-ml-firmware.noarch4.9.0-1.el6.elrepoelrepo-kernelkernel-ml-headers.x86_644.9.0-1.el6.elrepoelrepo-kernellibreport-plugin-kerneloops.x86_642.0.9-32.el6.centosbaseperf.x86_644.9.0-1.el6.elrepoelrepo-kernelphp-symfony-http-kernel.noarch2.3.42-1.el6epel[root@node4~]#

1.3)编辑grub.conf文件,修改Grub引导顺序

[root@node4~]#cp/etc/grub.conf/etc/grub.conf.bak

注意:养成实时备份的习惯,技术修改有问题,也可以进去单用户或者救援模式修复。

vim/etc/grub.conf

设置default值(从0开始),一般新安装的内核在第一个位置,所以设置default=0。

#default=1default=0

1.4)重启使其生效:

[root@node4~]#shutdown-rnow

1.5)查看检测:

[root@node4~]#cat/etc/redhat-releaseCentOSrelease6.6(Final)[root@node4~]#uname-r3.10.104-1.el6.elrepo.x86_64[root@node4~]#

评价:yum方式比较简单并且快,但是如果想要自己定义其内核路径,则显得力不从心。

2、编译升级内核(降级不测试)

eg:工作碰到需要修改内核配置,编译驱动,调节相关参数等,则需要定制内核。

官网:https://www.kernel.org/pub/linux/kernel/

2.1)下载指定版本并安装配置

[root@node4~]#wget--no-check-certificatehttps://www.kernel.org/pub/linux/kernel/linux-3.2.4.tar.gz[root@node4~]#du-shlinux-3.2.4.tar.gz95M linux-3.2.4.tar.gz[root@node4~]##yum-yinstallgccncurses-devel(依赖包)[root@node4~]#tarxflinux-3.2.4.tar.gz[root@node4~]#ll总用量96336drwxrwxr-x23rootroot40962月42012linux-3.2.4-rw-r--r--1rootroot986428092月42012linux-3.2.4.tar.gz[root@node4~]#[root@node4~]#cdlinux-3.2.4#[root@node4linux-3.2.4]#make--help#makemrproper#清除环境变量,即清除配置文件#makemenuconfig#在菜单模式下选择需要编译的内核模块
makemenuconfig(出现图形)

大致意思:

箭头键导航菜单。 输入 选择子菜单- – 。高亮显示的字母是热键。按 Y 包括 N ││排除, M 模块化特性。按退出 Esc Esc , ? , / 搜索。传说:[*]内置[]排除││ M 模块能力

makeclean#确保所有东西均保持最新状态.makebzImage#生成内核文件makemodules#编译模块makemodules_install#安装模块makeinstall#安装#makeall#makemodules_install#安装模块#makeinstall

2.2)编辑grub.conf文件,修改Grub引导顺序

vim/etc/grub.conf

设置default值(从0开始),一般新安装的内核在第一个位置,所以设置default=0。

#default=1default=0

2.3)重启使其生效:

[root@node4~]#shutdown-rnow

2.4)查看检测:

[root@node4~]#cat/etc/redhat-releaseCentOSrelease6.6(Final)[root@node4~]#uname-r3.2.4[root@node4~]#

评价:慢!而且需要一定经验,最好配置前查看官方手册。

3、yum方式降级内核版本

dracut-kernel.noarch004-356.el6@anaconda-CentOS-201410241409.x86_64/6.6kernel.x86_642.6.32-504.el6@anaconda-CentOS-201410241409.x86_64/6.6kernel-firmware.noarch2.6.32-504.el6@anaconda-CentOS-201410241409.x86_64/6.6kernel-headers.x86_642.6.32-573.18.1.el6@updateskernel-lt.x86_643.10.104-1.el6.elrepo@elrepo-kernelabrt-addon-kerneloops.x86_642.0.8-40.el6.centosbasedracut-kernel.noarch004-409.el6_8.2updateserlang-kernel.x86_64R14B-04.3.el6epelkernel.x86_642.6.32-642.11.1.el6updateskernel-abi-whitelists.noarch2.6.32-642.11.1.el6updateskernel-debug.x86_642.6.32-642.11.1.el6updateskernel-debug-devel.i6862.6.32-642.11.1.el6updateskernel-debug-devel.x86_642.6.32-642.11.1.el6updateskernel-devel.x86_642.6.32-642.11.1.el6updateskernel-doc.noarch2.6.32-642.11.1.el6updateskernel-firmware.noarch2.6.32-642.11.1.el6updateskernel-headers.x86_642.6.32-642.11.1.el6updateskernel-lt-devel.x86_643.10.104-1.el6.elrepoelrepo-kernelkernel-lt-doc.noarch3.10.104-1.el6.elrepoelrepo-kernelkernel-lt-firmware.noarch3.10.104-1.el6.elrepoelrepo-kernelkernel-lt-headers.x86_643.10.104-1.el6.elrepoelrepo-kernelkernel-ml.x86_644.9.0-1.el6.elrepoelrepo-kernelkernel-ml-devel.x86_644.9.0-1.el6.elrepoelrepo-kernelkernel-ml-doc.noarch4.9.0-1.el6.elrepoelrepo-kernelkernel-ml-firmware.noarch4.9.0-1.el6.elrepoelrepo-kernelkernel-ml-headers.x86_644.9.0-1.el6.elrepoelrepo-kernellibreport-plugin-kerneloops.x86_642.0.9-32.el6.centosbaseperf.x86_644.9.0-1.el6.elrepoelrepo-kernelphp-symfony-http-kernel.noarch2.3.42-1.el6epel[root@node4~]#

eg:降级到指定版本(需要yum源支持指定版本的内核)

#yum install kernel-2.6.32-642.11.1.el6

3.1)查看

3.2)截止目前有四个不同版本内核:

[root@node4~]#ll/boot/总用量94418-rw-r--r--.1rootroot10630810月152014config-2.6.32-504.el6.x86_64-rw-r--r--1rootroot10810811月1903:30config-2.6.32-642.11.1.el6.x86_64-rw-r--r--1rootroot14277810月2122:56config-3.10.104-1.el6.elrepo.x86_64drwxr-xr-x.3rootroot10242月232016efidrwxr-xr-x.2rootroot102412月1413:55grub-rw-------.1rootroot161396332月232016initramfs-2.6.32-504.el6.x86_64.img-rw-------1rootroot2140677812月1413:55initramfs-2.6.32-642.11.1.el6.x86_64.img-rw-------1rootroot177446663月252016initramfs-3.10.104-1.el6.elrepo.x86_64.img-rw-------1rootroot608674212月1413:05initramfs-3.2.4.imgdrwx------.2rootroot122882月232016lost+found-rw-r--r--.1rootroot20019110月152014symvers-2.6.32-504.el6.x86_64.gz-rw-r--r--1rootroot21553011月1903:30symvers-2.6.32-642.11.1.el6.x86_64.gz-rw-r--r--1rootroot25839610月2122:57symvers-3.10.104-1.el6.elrepo.x86_64.gzlrwxrwxrwx1rootroot2212月1413:04System.map- /boot/System.map-3.2.4-rw-r--r--.1rootroot254474810月152014System.map-2.6.32-504.el6.x86_64-rw-r--r--1rootroot261853211月1903:30System.map-2.6.32-642.11.1.el6.x86_64-rw-------1rootroot292861010月2122:56System.map-3.10.104-1.el6.elrepo.x86_64-rw-r--r--1rootroot240743012月1413:04System.map-3.2.4-rw-r--r--1rootroot240743012月1413:02System.map-3.2.4.oldlrwxrwxrwx1rootroot1912月1413:04vmlinuz- /boot/vmlinuz-3.2.4-rwxr-xr-x.1rootroot415233610月152014vmlinuz-2.6.32-504.el6.x86_64-rwxr-xr-x1rootroot426993611月1903:30vmlinuz-2.6.32-642.11.1.el6.x86_64-rwxr-xr-x1rootroot486542410月2122:56vmlinuz-3.10.104-1.el6.elrepo.x86_64-rw-r--r--1rootroot402304012月1413:04vmlinuz-3.2.4-rw-r--r--1rootroot402304012月1413:02vmlinuz-3.2.4.old[root@node4~]#default=0#default行,是指grub启动时默认菜单项。0表示第一项,如果是多系统可以修改此选项改变默认光标停留位置。timeout=5splashimage=(hd0,0)/grub/splash.xpm.gzhiddenmenutitleCentOS(2.6.32-642.11.1.el6.x86_64)root(hd0,0)kernel/vmlinuz-2.6.32-642.11.1.el6.x86_64roroot=/dev/mapper/vg_node4-lv_rootrd_NO_LUKSrd_NO_MDrd_LVM_LV=vg_node4/lv_swapcrashkernel=autoLANG=zh_CN.UTF-8rd_LVM_LV=vg_node4/lv_rootKEYBOARDTYPE=pcKEYTABLE=usrd_NO_DMrhgbquietinitrd/initramfs-2.6.32-642.11.1.el6.x86_64.imgtitleCentOS(3.2.4)root(hd0,0)kernel/vmlinuz-3.2.4roroot=/dev/mapper/vg_node4-lv_rootrd_NO_LUKSrd_NO_MDrd_LVM_LV=vg_node4/lv_swapcrashkernel=autoLANG=zh_CN.UTF-8rd_LVM_LV=vg_node4/lv_rootKEYBOARDTYPE=pcKEYTABLE=usrd_NO_DMrhgbquietinitrd/initramfs-3.2.4.imgtitleCentOS(3.10.104-1.el6.elrepo.x86_64)root(hd0,0)kernel/vmlinuz-3.10.104-1.el6.elrepo.x86_64roroot=/dev/mapper/vg_node4-lv_rootrd_NO_LUKSrd_NO_MDrd_LVM_LV=vg_node4/lv_swapcrashkernel=autoLANG=zh_CN.UTF-8rd_LVM_LV=vg_node4/lv_rootKEYBOARDTYPE=pcKEYTABLE=usrd_NO_DMrhgbquietinitrd/initramfs-3.10.104-1.el6.elrepo.x86_64.imgtitleCentOS6(2.6.32-504.el6.x86_64)root(hd0,0)

3.3)重启使其生效:

[root@node4~]#shutdown-rnow

[root@node4~]#cat/etc/redhat-releaseCentOSrelease6.6(Final)[root@node4~]#uname-r2.6.32-642.11.1.el6.x86_64[root@node4~]#

4、总结:

1、内核的升级和降级要有完整的流程,不可直接操作,注意升级或者降级中文件的备份

2、yum和编译升级和降级要根据环境具体而定,yum方便,编译定制麻烦。

3、centos6和centos7是有区别的,比如grub的引导文件,centos7(/boot/grub2)

如有不妥,可联系博主,欢迎指正!

累死累活不说,走马观花反而少了真实体验,

yum和编译两种方式升级or降级Centos内核推荐

相关文章:

你感兴趣的文章:

标签云: