阿里云和腾讯云CentOS 7.X 升级最新系统及内核指南(整理)

CentOS.jpg

测试过阿里云和腾讯云的云主机,其他主机慎用!测试时系统为 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

版权声明:本作品采用 CC BY-NC-SA 4.0 进行许可。除非注明,否则均为 蓝枫博客 原创文章,转载或复制请注明出处。
THE END
分享
二维码
打赏
海报
阿里云和腾讯云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 是安装在虚拟机上,那么可以使用快照进行备份.像 VMwa
< <上一篇
下一篇>>