内核版本定义

在Linux系统中,系统内核版本查看可在终端输入如下命令查看

[root@localhost ~]# uname -r
3.10.0-1160.15.2.el7.x86_64

内核版本性质为:主分支ml(main line),稳定版(stable),长期维护版lt(long term)

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

  • 数字 A 是内核版本号:版本号只有在代码和内核的概念有重大改变的时候才会改变:

    第一次是1994年的 1.0 版,第二次是1996年的 2.0 版,第三次是2011年的 3.0 版发布,以及后面的版本。

  • 数字 B 是内核主版本号:主版本号根据传统的奇-偶系统版本编号来分配:奇数为开发版,偶数为稳定版。

  • 数字 C 是内核次版本号:次版本号是无论在内核增加安全补丁、修复bug、实现新的特性或者驱动时都会改变。

内核升级

小版本升级

  1. 查看当前和可升级版本
[root@localhost ~]# yum list kernel
Installed Packages
kernel.x86_64                           3.10.0-1160.15.2.el7                            @updates
kernel.x86_64                           3.10.0-1160.25.1.el7                            @updates
  1. 升级
yum update kernel -y
  1. 重启机器并检查内核版本
[root@localhost ~]# reboot
[root@localhost ~]# uname -r

大版本升级

  1. 载入公钥
[root@localhost ~]# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
  1. 升级安装ELRrpo
[root@localhost ~]# rpm -Uvh http://elrepo.org/elrepo-release-7.0-4.el7.elrepo.noarch.rpm
  1. 载入elrepo-kernel元数据
[root@localhost ~]# yum --disablerepo=\* --enablerepo=elrepo-kernel repolist
  1. 查看可用的rpm包
[root@localhost ~]# yum --disablerepo=\* --enablerepo=elrepo-kernel list kernel*
Installed Packages
kernel.x86_64                                   3.10.0-1160.15.2.el7               @updates     
kernel.x86_64                                   3.10.0-1160.25.1.el7               @updates     
kernel-headers.x86_64                           3.10.0-1160.25.1.el7               @updates     
kernel-tools.x86_64                             3.10.0-1160.25.1.el7               @updates     
kernel-tools-libs.x86_64                        3.10.0-1160.25.1.el7               @updates     
Available Packages
kernel-lt.x86_64                                5.4.116-1.el7.elrepo               elrepo-kernel
kernel-lt-devel.x86_64                          5.4.116-1.el7.elrepo               elrepo-kernel
kernel-lt-doc.noarch                            5.4.116-1.el7.elrepo               elrepo-kernel
kernel-lt-headers.x86_64                        5.4.116-1.el7.elrepo               elrepo-kernel
kernel-lt-tools.x86_64                          5.4.116-1.el7.elrepo               elrepo-kernel
kernel-lt-tools-libs.x86_64                     5.4.116-1.el7.elrepo               elrepo-kernel
kernel-lt-tools-libs-devel.x86_64               5.4.116-1.el7.elrepo               elrepo-kernel
kernel-ml.x86_64                                5.12.1-1.el7.elrepo                elrepo-kernel
kernel-ml-devel.x86_64                          5.12.1-1.el7.elrepo                elrepo-kernel
kernel-ml-doc.noarch                            5.12.1-1.el7.elrepo                elrepo-kernel
kernel-ml-headers.x86_64                        5.12.1-1.el7.elrepo                elrepo-kernel
kernel-ml-tools.x86_64                          5.12.1-1.el7.elrepo                elrepo-kernel
kernel-ml-tools-libs.x86_64                     5.12.1-1.el7.elrepo                elrepo-kernel
kernel-ml-tools-libs-devel.x86_64               5.12.1-1.el7.elrepo                elrepo-kernel

其中:lt为长期支持版本;ml为主线版本

  1. 安装最新版本的Kernel
[root@localhost ~]# yum --disablerepo=\* --enablerepo=elrepo-kernel install  kernel-ml.x86_64  -y
  1. 删除旧版本工具包
[root@localhost ~]# yum remove kernel-tools-libs.x86_64 kernel-tools.x86_64  -y
  1. 安装新版本工具包
[root@localhost ~]# yum --disablerepo=\* --enablerepo=elrepo-kernel install kernel-ml-tools.x86_64 kernel-ml-tools-libs.x86_64  -y
  1. 查看内核插入顺序
[root@localhost ~]# awk -F \' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
0 : CentOS Linux (5.12.1-1.el7.elrepo.x86_64) 7 (Core)
1 : CentOS Linux (3.10.0-1160.25.1.el7.x86_64) 7 (Core)
2 : CentOS Linux (3.10.0-1160.15.2.el7.x86_64) 7 (Core)
3 : CentOS Linux (0-rescue-6ab2830113da4c6eabb6a7e39800eb6b) 7 (Core)

说明:默认新内核是从头插入,默认启动顺序也是从0开始(当前顺序还未生效)

或者使用:

[root@localhost ~]# grep "^menuentry" /boot/grub2/grub.cfg | cut -d "'" -f2
CentOS Linux (5.12.1-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux (3.10.0-1160.25.1.el7.x86_64) 7 (Core)
CentOS Linux (3.10.0-1160.15.2.el7.x86_64) 7 (Core)
CentOS Linux (0-rescue-6ab2830113da4c6eabb6a7e39800eb6b) 7 (Core)

其中文件/etc/grub2.cfg/boot/grub2/grub.cfg内容一致。

  1. 查看当前实际启动顺序
[root@localhost ~]# grub2-editenv list
saved_entry=CentOS Linux (3.10.0-1160.25.1.el7.x86_64) 7 (Core)
  1. 设置默认启动
[root@localhost ~]# grub2-set-default 'CentOS Linux (5.12.1-1.el7.elrepo.x86_64) 7 (Core)'

[root@localhost ~]# grub2-editenv list
saved_entry=CentOS Linux (5.12.1-1.el7.elrepo.x86_64) 7 (Core)

或者直接设置数值

[root@localhost ~]# grub2-set-default 0  // 0代表当前第一行
[root@localhost ~]# grub2-editenv list
saved_entry=0
  1. 重启并检查
[root@localhost ~]# reboot
[root@localhost ~]# uname -r

文章由Yang2635上传,原文链接:https://www.isisy.com/1175.html