CentOS 7. × 系统及内核升级指南
这是我对升级 CentOS 系统版本及内核的记录,方便以后查阅,也分享给大家:
注意:这篇文章只在 CentOS 7.× 系列版本上验证过,其他 CentOS 版本请谨慎使用.
1
检查当前 CentOS 系统版本
# cat /etc/redhat-release
> CentOS Linux release 7.1.1503 (Core)
2
检查当前 CentOS 系统内核版本
# uname -sr
> Linux 3.10.0-327.10.1.e17.x86_64
可以看出当前系统为 CentOS 7.1,系统内核版本为 3.10.
3
运行yum命令升级
CentOS 中update命令可以一次性更新所有软件到最新版本。
注意:不推荐使用update的-y选项,-y选项会让你在安装每项更新前都进行确认,这样会非常费时间.对于 CentOS 5.× 和 6.× 的系统我们在更新后需要重新安装应用程序恢复数据,庆幸的是 CentOS 7.× 不需要这么麻烦,可以直接升级.
# yum clean all
# yum update
期间会有确认提示,直接回车确认即可.
4
重启系统
# reboot
5
检查当前 CentOS 系统版本
# cat /etc/redhat-release
> CentOS Linux release 7.3.1611 (Core)
6
检查当前 CentOS 系统内核版本
# uname -sr
> Linux 3.10.0-327.10.1.e17.x86_64
可以看到当前系统为 CentOS 7.3 已经升级成功了,但系统内核版本依旧为 3.10 并没有升级,这是因为 CentOS 为了安全和稳定并不会把系统内核升级到最新的版本,所以yum update命令只会升级系统版本和更新软件.接下来我们就来升级系统内核.
7
升级 CentOS 7.× 内核,启用 ELRepo
大多数现代发行版提供了一种使用yum等包管理系统和官方支持的仓库升级内核的方法。
但是,这只会升级内核到仓库中可用的最新版本,而不是在The Linux Kernel Archives中可用的最新主线稳定内核.不幸的是, Red Hat 只允许使用yum升级内核.与 Red Hat 不同,CentOS 允许使用 ELRepo,这是一个第三方仓库,可以将内核升级到最新主线稳定内核.
要在 CentOS 7.× 上启用 ELRepo 仓库,请运行:
# rpm –importhttps://www.elrepo.org/RPM-GPG-KEY-elrepo.org
# rpm -Uvhhttp://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
仓库启用后,你可以使用下面的命令列出可用的系统内核相关包:
# yum –disablerepo=”*” –enablerepo=”elrepo-kernel” list available
接下来,安装最新的主线稳定内核:
# yum –enablerepo=elrepo-kernel install kernel-ml
由于网络原因,以上操作可能需要不少时间.
8
重启机器,检查当前 CentOS 系统内核版本
# uname -sr
> Linux 4.12.0-1.el7.elrepo.x86_64
可以看到系统内核已经升级到最新的主线稳定内核.
9
设置 GRUB 默认的内核版本
# vi /etc/default/grub
> GRUB_TIMEOUT=5
> GRUB_DISTRIBUTOR=”$(sed ‘s, release .*$,,g’ /etc/system-release)”
> GRUB_DEFAULT=0
> GRUB_DISABLE_SUBMENU=true
> GRUB_TERMINAL_OUTPUT=”console”
> GRUB_CMDLINE_LINUX=”crashkernel=auto console=ttyS0 console=tty0 panic=5″
> GRUB_DISABLE_RECOVERY=”true”
> GRUB_TERMINAL=”serial console”
> GRUB_TERMINAL_OUTPUT=”serial console”
> GRUB_SERIAL_COMMAND=”serial –speed=9600 –unit=0 –word=8 –parity=no –stop=1″
接下来运行下面的命令来重新创建内核配置.
# grub2-mkconfig -o /boot/grub2/grub.cfg
10
重启机器,查看系统当前内核版本,验证最新的内核已作为默认内核
# uname -a
> Linux VM_112_0_centos 4.12.0-1.el7.elrepo.x86_64 #1 SMP Sun Jul 2 20:38:48 EDT 2017 x86_64 x86_64 x86_64 GNU/Linux
11
删除 CentOS 更新后的旧内核
查看系统中全部的内核 RPM 包:
# rpm -qa | grep kernel
> kernel-tools-3.10.0-514.26.2.el7.x86_64
> kernel-devel-3.10.0-514.10.2.el7.x86_64
> kernel-3.10.0-514.26.2.el7.x86_64
> kernel-3.10.0-327.el7.x86_64
> kernel-ml-4.12.0-1.el7.elrepo.x86_64
> kernel-headers-3.10.0-514.26.2.el7.x86_64
> kernel-devel-3.10.0-514.26.2.el7.x86_64
> kernel-tools-libs-3.10.0-514.26.2.el7.x86_64
12
删除旧内核的 RPM 包
yum removekernel-tools-3.10.0-514.26.2.el7.x86_64 kernel-devel-3.10.0-514.10.2.el7.x86_64 kernel-3.10.0-514.26.2.el7.x86_64 kernel-3.10.0-327.el7.x86_64 kernel-headers-3.10.0-514.26.2.el7.x86_64 kernel-devel-3.10.0-514.26.2.el7.x86_64 kernel-tools-libs-3.10.0-514.26.2.el7.x86_64
13
重启系统
# reboot