zl程序教程

您现在的位置是:首页 >  系统

当前栏目

升级Centos7/6内核版本到5.5.8的方法

centos7内核方法 版本 升级 5.5
2023-09-11 14:15:40 时间


公司打算上Docker服务,目前需要安装运行环境,Docker新的功能除了需要Centos 7系统之外,内核的版本高低也决定着使用的效果,所以在此记录下系统内核版本升级过程。

注:对于线上环境的内核版本还需要根据实际情况谨慎选择,越新的版本未来可能遇到的问题越多,此文只是记录升级方法而已。

关于内核版本的定义

版本性质:主分支ml(mainline),稳定版(stable),长期维护版lt(longterm)

版本命名格式为 “A.B.C”:

数字 A 是内核版本号:版本号只有在代码和内核的概念有重大改变的时候才会改变,历史上有两次变化:
第一次是1994年的 1.0 版,第二次是1996年的 2.0 版,第三次是2011年的 3.0 版发布,但这次在内核的概念上并没有发生大的变化
数字 B 是内核主版本号:主版本号根据传统的奇-偶系统版本编号来分配:奇数为开发版,偶数为稳定版
数字 C 是内核次版本号:次版本号是无论在内核增加安全补丁、修复bug、实现新的特性或者驱动时都会改变

一、查看那系统内核版本

# uname -r
3.10.0-862.el7.x86_64
# cat /etc/redhat-release 
CentOS Linux release 7.3.1611 (Core)

二、升级内核

Centos 6和Centos 7的升级方法类似,只不过就是选择的YUM源或者rpm包不同罢了,下面主要是Centos 7的安装方法,中间也会有对于Centos 6 升级的方法提示。

方法一

Centos 6 YUM源:http://www.elrepo.org/elrepo-release-6-6.el6.elrepo.noarch.rpm
Centos 7 YUM源:http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm

升级内核需要先导入elrepo的key,然后安装elrepo的yum源:

# rpm -import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
# rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm

仓库启用后,你可以使用下面的命令列出可用的内核相关包,如下图:

# yum --disablerepo="*" --enablerepo="elrepo-kernel" list available

在这里插入图片描述
上图可以看出,长期维护版本lt为4.4,最新主线稳定版ml为5.5.8,我们需要安装最新的主线稳定内核,使用如下命令:(以后这台机器升级内核直接运行这句就可升级为最新稳定版)

yum -y --enablerepo=elrepo-kernel install kernel-ml.x86_64 kernel-ml-devel.x86_64 

方法二

对于一些无法上网的服务器,或者需要安装指定版本内核的需求,我们可以把kernel image的rpm包下载下来安装,下载地址如下:

下载指定版本 kernel: http://rpm.pbone.net/index.php3?stat=3&limit=1&srodzaj=3&dl=40&search=kernel
下载指定版本 kernel-devel:http://rpm.pbone.net/index.php3?stat=3&limit=1&srodzaj=3&dl=40&search=kernel-devel

官方 Centos 6: http://elrepo.org/linux/kernel/el6/x86_64/RPMS/

官方 Centos 7: http://elrepo.org/linux/kernel/el7/x86_64/RPMS/

在这里插入图片描述

将rpm包下载上传到服务器上,使用下面的命令安装即可:

yum -y install kernel-ml-5.5.8-1.el7.elrepo.x86_64.rpm
yum -y install kernel-ml-devel-5.5.8-1.el7.elrepo.x86_64.rpm

方法三

还可以通过源码包编译安装,这种方式可定制性强,但也比较复杂,有需要的可自行查找资料安装,下面只给出各系统版本内核源码包的下载地址:https://www.kernel.org/pub/linux/kernel/

三、修改grub中默认的内核版本

内核升级完毕后,目前内核还是默认的版本,如果此时直接执行reboot命令,重启后使用的内核版本还是默认的3.10,不会使用新的5.5.8,首先,我们可以通过命令查看默认启动顺序:

[root@master kernal]# awk -F\' '$1=="menuentry " {print $2}' /etc/grub2.cfg
CentOS Linux (5.5.8-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux (3.10.0-862.el7.x86_64) 7 (Core)
CentOS Linux (0-rescue-c28d40cbc8e3adcb4e32d9779a77b39e) 7 (Core)

由上面可以看出新内核(5.5.8)目前位置在0,原来的内核(3.10.0)目前位置在1,所以如果想生效最新的内核,还需要我们修改内核的启动顺序为0:

vim /etc/default/grub

在这里插入图片描述
注:Centos 6更改的文件相同,使用命令确定新内核位置后,然后将参数default更改为0即可。

接着运行grub2-mkconfig命令来重新创建内核配置,如下:

[root@master kernal]# grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-5.5.8-1.el7.elrepo.x86_64
Found initrd image: /boot/initramfs-5.5.8-1.el7.elrepo.x86_64.img
Found linux image: /boot/vmlinuz-3.10.0-862.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-862.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-c28d40cbc8e3adcb4e32d9779a77b39e
Found initrd image: /boot/initramfs-0-rescue-c28d40cbc8e3adcb4e32d9779a77b39e.img
done

四、重启系统并查看系统内核

reboot

系统启动完毕后,可以通过命令查看系统的内核版本,如下:

[root@master ~]# uname -ra
Linux master 5.5.8-1.el7.elrepo.x86_64 #1 SMP Tue Mar 3 18:13:28 EST 2020 x86_64 x86_64 x86_64 GNU/Linux

到此,Centos7内核升级完毕。

升级过程

以下是部分升级过程:

[root@master kernal]#  yum --disablerepo="*" --enablerepo="elrepo-kernel" list available
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * elrepo-kernel: mirror-hk.koddos.net
elrepo-kernel                                                                                                             | 2.9 kB  00:00:00     
elrepo-kernel/primary_db                                                                                                  | 1.9 MB  00:00:00     
Available Packages
kernel-lt.x86_64                                                        4.4.215-1.el7.elrepo                                        elrepo-kernel
kernel-lt-devel.x86_64                                                  4.4.215-1.el7.elrepo                                        elrepo-kernel
kernel-lt-doc.noarch                                                    4.4.215-1.el7.elrepo                                        elrepo-kernel
kernel-lt-headers.x86_64                                                4.4.215-1.el7.elrepo                                        elrepo-kernel
kernel-lt-tools.x86_64                                                  4.4.215-1.el7.elrepo                                        elrepo-kernel
kernel-lt-tools-libs.x86_64                                             4.4.215-1.el7.elrepo                                        elrepo-kernel
kernel-lt-tools-libs-devel.x86_64                                       4.4.215-1.el7.elrepo                                        elrepo-kernel
kernel-ml.x86_64                                                        5.5.8-1.el7.elrepo                                          elrepo-kernel
kernel-ml-devel.x86_64                                                  5.5.8-1.el7.elrepo                                          elrepo-kernel
kernel-ml-doc.noarch                                                    5.5.8-1.el7.elrepo                                          elrepo-kernel
kernel-ml-headers.x86_64                                                5.5.8-1.el7.elrepo                                          elrepo-kernel
kernel-ml-tools.x86_64                                                  5.5.8-1.el7.elrepo                                          elrepo-kernel
kernel-ml-tools-libs.x86_64                                             5.5.8-1.el7.elrepo                                          elrepo-kernel
kernel-ml-tools-libs-devel.x86_64                                       5.5.8-1.el7.elrepo                                          elrepo-kernel
perf.x86_64                                                             5.5.8-1.el7.elrepo                                          elrepo-kernel
python-perf.x86_64                                                      5.5.8-1.el7.elrepo                                          elrepo-kernel
[root@master kernal]# yum -y --enablerepo=elrepo-kernel install kernel-ml.x86_64 kernel-ml-devel.x86_64 
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * elrepo: mirror-hk.koddos.net
 * elrepo-kernel: mirror-hk.koddos.net
docker-ce-stable                                                                                                          | 3.5 kB  00:00:00     
docker-ce-test                                                                                                            | 3.5 kB  00:00:00     
elrepo                                                                                                                    | 2.9 kB  00:00:00     
epel                                                                                                                      | 5.4 kB  00:00:00     
extras                                                                                                                    | 2.9 kB  00:00:00     
kubernetes                                                                                                                | 1.4 kB  00:00:00     
os                                                                                                                        | 3.6 kB  00:00:00     
updates                                                                                                                   | 2.9 kB  00:00:00     
(1/3): elrepo/primary_db                                                                                                  | 393 kB  00:00:00     
(2/3): epel/7/x86_64/updateinfo                                                                                           | 1.0 MB  00:00:00     
(3/3): epel/7/x86_64/primary_db                                                                                           | 6.7 MB  00:00:01     
Resolving Dependencies
--> Running transaction check
---> Package kernel-ml.x86_64 0:5.5.8-1.el7.elrepo will be installed
---> Package kernel-ml-devel.x86_64 0:5.5.8-1.el7.elrepo will be installed
--> Finished Dependency Resolution

Dependencies Resolved

=================================================================================================================================================
 Package                             Arch                       Version                                  Repository                         Size
=================================================================================================================================================
Installing:
 kernel-ml                           x86_64                     5.5.8-1.el7.elrepo                       elrepo-kernel                      49 M
 kernel-ml-devel                     x86_64                     5.5.8-1.el7.elrepo                       elrepo-kernel                      13 M

Transaction Summary
=================================================================================================================================================
Install  2 Packages

Total download size: 62 M
Installed size: 271 M
Downloading packages:
(1/2): kernel-ml-devel-5.5.8-1.el7.elrepo.x86_64.rpm                                                                      |  13 MB  00:00:23     
(2/2): kernel-ml-5.5.8-1.el7.elrepo.x86_64.rpm                                                                            |  49 MB  00:00:37     
-------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                            1.7 MB/s |  62 MB  00:00:37     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Warning: RPMDB altered outside of yum.
  Installing : kernel-ml-devel-5.5.8-1.el7.elrepo.x86_64                                                                                     1/2 
  Installing : kernel-ml-5.5.8-1.el7.elrepo.x86_64                                                                                           2/2 
  Verifying  : kernel-ml-5.5.8-1.el7.elrepo.x86_64                                                                                           1/2 
  Verifying  : kernel-ml-devel-5.5.8-1.el7.elrepo.x86_64                                                                                     2/2 

Installed:
  kernel-ml.x86_64 0:5.5.8-1.el7.elrepo                                kernel-ml-devel.x86_64 0:5.5.8-1.el7.elrepo                               

Complete!

参考

https://www.centos.bz/2017/08/upgrade-centos-7-6-kernel-to-4-12-4/