CentOS 7 更新内核版本

2023/01/28 17:32 下午 posted in  服务器

新安装的CentOS系统内核版本为3.10,系统是需要提高内核版本的,从而提高安全性,稳定性,并增加更多的功能

关于内核

Linux 内核分两种:官方内核(通常是内核开发人员用)和各大 Linux 发行版内核(一般用户常用)。

关于Linux内核版本号:

例如:

[root@centos7 ~]# uname -r
3.10.0-1127.19.1.el7.x86_64

查询得到的版本号为:3.10.0-1127.19.1.el7.x86_64

第一个组数字:3, 主版本号

第二个组数字:10, 次版本号,当前为稳定版本,一般这个数字为偶数表示稳定,奇数表示在开发版本,通常这样的不做生产使用。

第三个组数字:0, 修订版本号

第四个组数字:1127.19.1,表示发型版本的补丁版本

el7:则表示我正在使用的内核是 RedHat / CentOS 系列发行版专用内核 ,centos7

x86_64:采用的是适用64位的CPU的操作系统。

内核版本的分类:

查看内核的种类在 官网:The Linux Kernel Archives

Prepatch:Prepatch 或 “RC” 内核是主要的内核预发行版本,主要针对内核开发人员和 Linux 爱好者。必须从源代码进行编译,并且通常包含必须在可以放入稳定版本之前进行测试的新功能。Prepatch 内核由 Linus Torvalds 维护和发布。

Mainline:Mainline 主线树由 Linus Torvalds 维护。这个版本的内核会引入所有新功能。新的 Mainline 内核每 2-3 个月发布一次。

Stable:每个主线内核被发布后,即被认为是“stable”。任何对 stable 内核的 BUG 修复都会从 Mainline 主线树中回溯并由指定的 stable 内核维护人员使用。 在下一个主线内核可用之前,通常只有几个 BUG 修复内核版本 - 除非它被指定为“longterm maintenance kernel(长期维护内核)”。stable 内核更新按需发布,通常每月 2-3 次。

Longterm:通常会提供几个“longterm maintenance”内核版本,用于修复旧版内核的 BUG。这些内核只会修复重大 BUG,并且不会频繁发布版本。

内核升级(yum方法安装升级)

检查已安装的内核版本

[root@centos7 ~]# uname -r
3.10.0-1160.83.1.el7.x86_64

在 CentOS 7 中升级内核

CentOS 允许使用 ELRepo,这是一个第三方仓库,可以将内核升级到最新版本。

在 CentOS 7 上启用 ELRepo 仓库,运行如下命令:

#导入该源的秘钥
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

输出如下:

[root@centos7 ~]# yum --disablerepo="*" --enablerepo="elrepo-kernel" list available
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * elrepo-kernel: mirrors.tuna.tsinghua.edu.cn
可安装的软件包
elrepo-release.noarch               7.0-6.el7.elrepo        elrepo-kernel
kernel-lt.x86_64                    5.4.230-1.el7.elrepo    elrepo-kernel
kernel-lt-devel.x86_64              5.4.230-1.el7.elrepo    elrepo-kernel
kernel-lt-doc.noarch                5.4.230-1.el7.elrepo    elrepo-kernel
kernel-lt-headers.x86_64            5.4.230-1.el7.elrepo    elrepo-kernel
kernel-lt-tools.x86_64              5.4.230-1.el7.elrepo    elrepo-kernel
kernel-lt-tools-libs.x86_64         5.4.230-1.el7.elrepo    elrepo-kernel
kernel-lt-tools-libs-devel.x86_64   5.4.230-1.el7.elrepo    elrepo-kernel
kernel-ml.x86_64                    6.1.8-1.el7.elrepo      elrepo-kernel
kernel-ml-devel.x86_64              6.1.8-1.el7.elrepo      elrepo-kernel
kernel-ml-doc.noarch                6.1.8-1.el7.elrepo      elrepo-kernel
kernel-ml-headers.x86_64            6.1.8-1.el7.elrepo      elrepo-kernel
kernel-ml-tools.x86_64              6.1.8-1.el7.elrepo      elrepo-kernel
kernel-ml-tools-libs.x86_64         6.1.8-1.el7.elrepo      elrepo-kernel
kernel-ml-tools-libs-devel.x86_64   6.1.8-1.el7.elrepo      elrepo-kernel
perf.x86_64                         5.4.230-1.el7.elrepo    elrepo-kernel
python-perf.x86_64                  5.4.230-1.el7.elrepo    elrepo-kernel

开始安装

#安装的是主线版本,该版本比较激进,慎重选择。
yum --enablerepo=elrepo-kernel install kernel-ml -y
#安装的长期稳定版本,稳定可靠
yum --enablerepo=elrepo-kernel install kernel-lt -y 

两个yum命令选择一个安装。

设置 GRUB 默认的内核版本

为了让新安装的内核成为默认启动选项,你需要如下修改 GRUB 配置:

打开并编辑 /etc/default/grub 并设置 GRUB_DEFAULT=0。意思是 GRUB 初始化页面的第一个内核将作为默认内核。

[root@centos7 ~] vi /etc/default/grub
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved  #这里的saved改为0即可,重启后,默认就是你上次所选的版本了。
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="rhgb quiet"
GRUB_DISABLE_RECOVERY="true"

执行命令:

[root@centos7 ~] grub2-mkconfig -o /boot/grub2/grub.cfg

重启系统

[root@centos7 ~] reboot