因為需要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是主線版本;