Centos7.6内核升级
因为需要Docker overlay网络模式,要求内核版本较高,目前3.10,刚满足最低需求,建议把内核直接升到4.x,升级版本时,一般要按先升级小版本,再升级到大版本的过程。
内核升级前
升级小版本操作步骤
- 查看当前可升级版本及升级
[root@kalvin ~]# yum list kernel
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
已安装的软件包
kernel.x86_64 3.10.0-957.el7 @anaconda
kernel.x86_64 3.10.0-957.21.3.el7 @updates
可安装的软件包
kernel.x86_64 3.10.0-1062.9.1.el7 updates
[root@kalvin ~]# yum -y update kernel
- 重启并检查
[root@kalvin ~]# uname -r
3.10.0-1062.9.1.el7.x86_64
[root@kalvin ~]#
升级大版本操作步骤
- 导入public key
[root@kalvin ~]# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
- 使用elrepo作为yum源
[root@kalvin ~]# rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
获取http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
准备中... ################################# [100%]
正在升级/安装...
1:elrepo-release-7.0-3.el7.elrepo ################################# [100%]
[root@kalvin ~]#
- 安装elrepo-kernel元数据
[root@kalvin ~]# yum --disablerepo=\* --enablerepo=elrepo-kernel repolist
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
* elrepo-kernel: mirrors.tuna.tsinghua.edu.cn
elrepo-kernel | 2.9 kB 00:00:00
elrepo-kernel/primary_db | 1.9 MB 00:00:00
源标识 源名称 状态
elrepo-kernel ELRepo.org Community Enterprise Linux Kernel Repository - el7 37
repolist: 37
[root@kalvin ~]#
- 查看可用的rpm包
[root@kalvin ~]# yum --disablerepo=\* --enablerepo=elrepo-kernel list kernel*
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
* elrepo-kernel: hkg.mirror.rackspace.com
已安装的软件包
kernel.x86_64 3.10.0-957.el7 @anaconda
kernel.x86_64 3.10.0-957.21.3.el7 @updates
kernel.x86_64 3.10.0-1062.9.1.el7 @updates
kernel-devel.x86_64 3.10.0-957.21.3.el7 @updates
kernel-headers.x86_64 3.10.0-957.21.3.el7 @updates
kernel-tools.x86_64 3.10.0-957.21.3.el7 @updates
kernel-tools-libs.x86_64 3.10.0-957.21.3.el7 @updates
可安装的软件包
kernel-lt.x86_64 4.4.207-1.el7.elrepo elrepo-kernel
kernel-lt-devel.x86_64 4.4.207-1.el7.elrepo elrepo-kernel
kernel-lt-doc.noarch 4.4.207-1.el7.elrepo elrepo-kernel
kernel-lt-headers.x86_64 4.4.207-1.el7.elrepo elrepo-kernel
kernel-lt-tools.x86_64 4.4.207-1.el7.elrepo elrepo-kernel
kernel-lt-tools-libs.x86_64 4.4.207-1.el7.elrepo elrepo-kernel
kernel-lt-tools-libs-devel.x86_64 4.4.207-1.el7.elrepo elrepo-kernel
kernel-ml.x86_64 5.4.6-1.el7.elrepo elrepo-kernel
kernel-ml-devel.x86_64 5.4.6-1.el7.elrepo elrepo-kernel
kernel-ml-doc.noarch 5.4.6-1.el7.elrepo elrepo-kernel
kernel-ml-headers.x86_64 5.4.6-1.el7.elrepo elrepo-kernel
kernel-ml-tools.x86_64 5.4.6-1.el7.elrepo elrepo-kernel
kernel-ml-tools-libs.x86_64 5.4.6-1.el7.elrepo elrepo-kernel
kernel-ml-tools-libs-devel.x86_64 5.4.6-1.el7.elrepo elrepo-kernel
[root@kalvin ~]#
说明:
- lt:long term support,长期支持;
- ml:mainline,主线版本
- 安装长期支持版本kernel-lt.x86_64
[root@kalvin ~]# yum --disablerepo=\* --enablerepo=elrepo-kernel -y install kernel-lt.x86_64
- 删除旧版本工具包
[root@kalvin ~]# rpm -qa |grep kernel
kernel-lt-4.4.207-1.el7.elrepo.x86_64
kernel-tools-3.10.0-957.21.3.el7.x86_64
kernel-headers-3.10.0-957.21.3.el7.x86_64
kernel-3.10.0-957.el7.x86_64
kernel-tools-libs-3.10.0-957.21.3.el7.x86_64
kernel-3.10.0-957.21.3.el7.x86_64
kernel-devel-3.10.0-957.21.3.el7.x86_64
kernel-3.10.0-1062.9.1.el7.x86_64
[root@kalvin ~]# yum -y remove kernel-tools-libs-3.10.0-957.21.3.el7.x86_64 kernel-tools-3.10.0-957.21.3.el7.x86_64
- 安装新版本的工具包
[root@kalvin ~]# yum --disablerepo=\* --enablerepo=elrepo-kernel -y install kernel-lt-tools.x86_64
- 查看内核插入顺序
[root@kalvin ~]# awk -F \' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
0 : CentOS Linux (4.4.207-1.el7.elrepo.x86_64) 7 (Core)
1 : CentOS Linux (3.10.0-1062.9.1.el7.x86_64) 7 (Core)
2 : CentOS Linux (3.10.0-957.21.3.el7.x86_64) 7 (Core)
3 : CentOS Linux (3.10.0-957.el7.x86_64) 7 (Core)
4 : CentOS Linux (0-rescue-20190711105006363114529432776998) 7 (Core)
[root@kalvin ~]#
- 查看当前实际启动内核版本
[root@kalvin ~]# grub2-editenv list
saved_entry=CentOS Linux (3.10.0-1062.9.1.el7.x86_64) 7 (Core)
[root@kalvin ~]#
- 设置默认启动(这里的0,可以使用上面第8步中的
$2
替换)
[root@kalvin ~]# grub2-set-default 0
[root@kalvin ~]# grub2-editenv list
saved_entry=0
[root@kalvin ~]#
- 重启并检查
[root@kalvin ~]# uname -r
4.4.207-1.el7.elrepo.x86_64
[root@kalvin ~]# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
[root@kalvin ~]#
内核升级后
总结
- 升级过程需要注意下,一般先升级小版本,然后再升级大版本;
- 使用elrepo yum源进行升级,lt代表长期支持版本,ml是主线版本;