阿里云和腾讯云CentOS 7.X 升级最新系统及内核指南(整理)
测试过阿里云和腾讯云的云主机,其他主机慎用!测试时系统为 CentOS 7.1,系统内核版本为 3.10,最新的 CentOS 版本为 CentOS 7.3,而 The Linux Kernel Archives 上提供的最新稳定的系统内核为 4.12 版本.所以就把服务器系统升级为最新的 CentOS 7.3 版本,系统内核升级为 4.12 版本.
-
备份重要数据
备份重要数据(例如:/etc ,/var ,/opt文件夹)如果 CentOS 是安装在虚拟机上,那么可以使用快照进行备份.像 VMware 虚拟机可以快照备份.也可以针对重要程序数据进行备份,例如 MySQL、Appache、Nginx、DNS 等等.云主机的话,阿里云和腾讯云都可以创建快照备份数据.
-
检查当前 CentOS 系统版本
# cat /etc/redhat-release > CentOS Linux release 7.1.1503 (Core)
-
检查当前 CentOS 系统内核版本
# uname -sr > Linux 3.10.0-327.10.1.e17.x86_64
可以看出当前系统为 CentOS 7.1,系统内核版本为 3.10.
-
运行 yum 命令升级
CentOS 中 update 命令可以一次性更新所有软件到最新版本。
注意:不推荐使用 update 的 -y选项,-y 选项会让你在安装每项更新前都进行确认,这样会非常费时间.对于 CentOS 5.× 和 6.× 的系统我们在更新后需要重新安装应用程序恢复数据,庆幸的是 CentOS 7.× 不需要这么麻烦,可以直接升级.
# yum clean all # yum update
期间会有确认提示,直接回车确认即可.
-
重启系统
# reboot
-
检查当前 CentOS 系统版本
# cat /etc/redhat-release > CentOS Linux release 7.3.1611 (Core)
-
检查当前 CentOS 系统内核版本
# uname -sr > Linux 3.10.0-327.10.1.e17.x86_64
可以看到当前系统为 CentOS 7.3 已经升级成功了,但系统内核版本依旧为 3.10 并没有升级,这是因为 CentOS 为了安全和稳定并不会把系统内核升级到最新的版本,所以 yum update 命令只会升级系统版本和更新软件.接下来我们就来升级系统内核.
-
升级 CentOS 7.× 内核,启用 ELRepo
大多数现代发行版提供了一种使用 yum 等包管理系统和官方支持的仓库升级内核的方法。
但是,这只会升级内核到仓库中可用的最新版本,而不是在 The Linux Kernel Archives 中可用的最新主线稳定内核.不幸的是, Red Hat 只允许使用 yum 升级内核.与 Red Hat 不同,CentOS 允许使用 ELRepo,这是一个第三方仓库,可以将内核升级到最新主线稳定内核.
-
要在 CentOS 7.× 上启用 ELRepo 仓库,请运行
sudo rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org sudo rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
接下来,安装最新的主线稳定内核:
sudo yum --enablerepo=elrepo-kernel install kernel-ml -y
看一下系统现在所有的内核
rpm -qa | grep kernel
[root@iZ2ze83hhomw2zcf15c3qcZ ~]# rpm -qa | grep kernel kernel-3.10.0-327.el7.x86_64 kernel-3.10.0-327.22.2.el7.x86_64 kernel-tools-libs-3.10.0-327.el7.x86_64 kernel-tools-3.10.0-327.el7.x86_64 kernel-ml-4.14.3-1.el7.elrepo.x86_64 kernel-headers-3.10.0-514.2.2.el7.x86_64
也许你的列表和这个不一样,但是根据版本号能推断出哪个是最新的.
可以看到最新的内核版本 kernel-ml-4.14.3-1.el7.elrepo.x86_64 已经安装好了。
-
现在来修改 grub2 的启动项,设置启动之后选择最新的内核
sudo egrep ^menuentry /etc/grub2.cfg | cut -f 2 -d \'
[root@iZ2ze83hhomw2zcf15c3qcZ ~]# sudo egrep ^menuentry /etc/grub2.cfg | cut -f 2 -d \' CentOS Linux (4.14.3-1.el7.elrepo.x86_64) 7 (Core) CentOS Linux (3.10.0-327.22.2.el7.x86_64) 7 (Core) CentOS Linux (3.10.0-327.el7.x86_64) 7 (Core) CentOS Linux (0-rescue-7d26c16f128042a684ea474c9e2c240f) 7 (Core)
启动顺序已经修改了,但是为了以防万一,我们还是设置一下
sudo grub2-set-default 0
选择第一个为默认启动项。
-
最后就可以重启机器
# reboot
-
重启机器,查看系统当前内核版本,验证最新的内核已作为默认内核
# 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
-
删除 CentOS 更新后的旧内核
# 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
-
删除旧内核的 RPM 包 (下面命令不是固定的,根据你上面的旧内核名称变化)
yum remove 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-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
-
重启系统
# reboot



共有 0 条评论