暂无图片
暂无图片
4
暂无图片
暂无图片
暂无图片

CentOS 7.9 内核升级实战:从 3.10 到 5.4.218

原创 shunwahⓂ️ 2025-12-07
118

解决兼容性与稳定性双重挑战:CentOS 7.9 内核升级实战,为 CentOS 7.9 注入现代内核能力

作者: ShunWah(顺华)
公众号: "顺华星辰运维栈"主理人。

持有认证: OceanBase OBCA/OBCP、MySQL OCP、OpenGauss、崖山 DBCA、金仓KingBase KCA/KCP、KaiwuDB KWCA/KWCP、 亚信 AntDBCA、翰高 HDCA、GBase 8a/8c/8s、Galaxybase GBCA、Neo4j ScienceCertification、NebulaGraph NGCI/NGCP、东方通 TongTech TCPE 等多项权威认证。

获奖经历: 崖山YashanDB YVP、浪潮KaiwuDB MVP、墨天轮 MVP,担任 OceanBase 社区版主及布道师。曾在OceanBase&墨天轮征文大赛、OpenGauss、TiDB、YashanDB、Kingbase、KWDB、Navicat Premium × 金仓数据库征文等赛事中多次斩获一、二、三等奖,原创技术文章常年被墨天轮、CSDN、ITPUB 等平台首页推荐。

  • CSDN_ID: shunwahma
  • 墨天轮_ID:shunwah
  • ITPUB_ID: shunwah
  • IFClub_ID:shunwah

制作故障排查图片 1.png

前言

在企业级 IT 环境中,CentOS 7 凭借其稳定可靠的特性,长期占据着服务器操作系统的重要地位。然而,随着技术生态的快速迭代,其默认搭载的 3.10 内核逐渐暴露出两大核心问题:一是与众多现代软件(如新型容器化工具、大数据处理框架、人工智能依赖库等)存在兼容性瓶颈,导致软件无法正常启动或功能受限;二是 3.10 内核在 cgroup 资源管理模块存在已知 bug,当系统采用 xfs 磁盘格式时,可能触发集群挂死等严重稳定性事故,给业务连续性带来极大风险。

更具挑战性的是,CentOS 7 已于 2024 年 6 月 30 日正式结束生命周期(EOL),ELRepo 团队也随之停止了对 CentOS 7 主线内核(kernel-ml)的支持,仅对长期支持版内核(kernel-lt)保留部分维护。经过多方技术评估,我们最终选择将内核升级至 5.4.218 版本——该版本作为 Linux 5.4 LTS 系列的稳定迭代版,官方维护周期延长至 2026 年,既能够完美解决 3.10 内核的兼容性与稳定性问题,又能适配 CentOS 7.9 老旧的 GCC 4.8 工具链,是当前最适合生产环境的升级选择。

本文将详细记录从环境确认、依赖准备、内核下载安装到 GRUB 配置优化的完整实操过程,所有步骤均经过生产环境验证,附带真实命令输出与截图,为同类场景提供可直接复用的落地指南。

一、升级背景与核心诉求

1.1 3.10 内核的核心痛点解析

1.1.1 软件兼容性瓶颈

随着云原生、大数据等技术的普及,许多主流软件(如 Kubernetes 高版本、Elasticsearch 新特性、机器学习框架 TensorFlow 等)对内核版本提出了更高要求,明确标注不支持 3.10 这类老旧内核。例如,部分软件依赖的 bpf 功能、新的文件系统特性在 3.10 内核中存在缺失或bug,导致安装后无法启动或运行异常。

1.1.2 cgroup 相关稳定性风险

3.10 内核的 cgroup 子系统存在设计缺陷,在高并发资源调度场景下(如容器集群、大数据任务调度),可能出现资源统计异常、进程调度死锁等问题,最终导致整个服务器或集群挂死,且难以通过常规手段排查定位。

1.1.3 xfs 文件系统适配缺陷

经实践验证,当 CentOS 7 系统同时满足“3.10 内核 + xfs 磁盘格式”条件时,会触发内核与文件系统的兼容性问题,表现为磁盘 IO 卡顿、文件读写超时甚至系统 panic,这一问题在数据密集型业务场景中尤为突出。

1.2 内核版本选型依据

1.2.1 为什么选择 5.4.218 LTS 内核

  • 长期支持特性:Linux 5.4 系列是官方认证的 LTS(Long-Term Support)版本,维护周期至 2026 年,能够为生产环境提供持续的安全更新与 bug 修复,避免频繁升级内核带来的风险;
  • 工具链兼容性:5.4.218 版本经过 ELRepo 团队适配,能够兼容 CentOS 7.9 自带的 GCC 4.8 工具链,无需升级系统基础工具链即可正常安装运行,降低了升级复杂度;
  • 功能完整性:该版本修复了 3.10 内核的 cgroup 缺陷、xfs 适配问题,同时支持现代软件所需的核心特性,能够彻底解决兼容性瓶颈。

1.2.2 ELRepo 仓库支持现状说明

ELRepo 是 CentOS/RHEL 系统最可靠的第三方内核仓库,但由于 CentOS 7 已 EOL,其在 2024 年底停止了主线内核(kernel-ml)的支持。不过,针对 5.4 这类 LTS 内核,ELRepo 仍通过归档仓库提供 kernel-lt(Long-Term Support)版本的构建包,这也是本次选择 kernel-lt-5.4.218 的核心原因。

1.3 升级前置原则

1.3.1 数据备份优先级

内核升级属于系统级操作,存在一定风险(如启动失败、硬件驱动不兼容等)。升级前必须完成两项核心备份:一是系统重要配置文件(/etc、/boot 目录)备份至异地存储;二是业务数据全量备份,确保升级失败时可快速回滚。

1.3.2 测试环境预验证要求

建议先在与生产环境配置一致的测试服务器上完成升级验证,重点测试:新内核启动稳定性、业务软件运行兼容性、硬件驱动(如网卡、存储控制器)适配性,确认无异常后再推广至生产环境。

二、升级前环境全景确认

在执行升级操作前,需先对系统环境进行全面核查,确保满足升级前提条件,避免因环境差异导致升级失败。

2.1 系统基础信息核查

2.1.1 操作系统版本验证

通过以下命令确认系统为 CentOS 7.9 版本,这是本次升级的基础环境要求:

[root@worker3 ~]# cat /etc/redhat-release 
CentOS Linux release 7.9.2009 (Core)
[root@worker3 ~]# 

image.png

2.1.2 当前内核版本确认

核查当前运行的内核版本,确认是否为需要升级的 3.10 系列:

[root@worker3 ~]# uname -r
3.10.0-693.el7.x86_64
[root@worker3 ~]# 

image.png

2.1.3 其中 OceanBase 也不推荐使用 3.10 版本的内核

a4c16b23637ada9c6c4a23f9e0c00a54.jpg

2.2 依赖环境预检查

2.2.1 EPEL 仓库安装状态验证

EPEL 仓库提供了大量 CentOS 官方仓库缺失的依赖包,部分内核安装依赖需要从 EPEL 获取,因此需先确认 EPEL 已安装:

[root@worker3 ~]# yum install -y epel-release
Loaded plugins: fastestmirror
Determining fastest mirrors
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
base                                                                       | 3.6 kB  00:00:00     
epel                                                                       | 4.3 kB  00:00:00     
extras                                                                     | 2.9 kB  00:00:00     
updates                                                                    | 2.9 kB  00:00:00     
Package epel-release-7-14.noarch already installed and latest version
Nothing to do
[root@worker3 ~]# 

image.png
若输出“Package epel-release-7-14.noarch already installed and latest version”,说明已安装;若未安装,命令会自动完成安装。

2.2.2 核心工具链可用性检查

后续生成 GRUB 配置、构建 initramfs 镜像需要 grub2-toolsdracut 工具,提前确认是否安装(若未安装,将在后续步骤中补充安装):

[root@worker3 ~]# rpm -q grub2-tools dracut
package grub2-tools is not installed
dracut-033-572.el7.x86_64
[root@worker3 ~]# 

image.png

三、内核升级实操步骤

3.1 仓库配置与密钥导入

3.1.1 EPEL 仓库安装(已安装场景确认)

如 2.2.1 所示,若系统未安装 EPEL 仓库,需先执行以下命令安装,确保后续依赖包可正常获取:

yum install -y epel-release

3.1.2 ELRepo GPG 密钥导入

ELRepo 仓库的 RPM 包采用 GPG 签名验证,需先导入密钥以确保包的完整性和安全性:

[root@worker3 ~]# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
[root@worker3 ~]# 

image.png
执行后无报错,说明密钥导入成功。

3.2 内核 RPM 包手动下载

由于 ELRepo 官方 yum 仓库已停止对 CentOS 7 内核包的主动维护,直接通过 yum 安装可能失败,因此采用“手动下载 RPM 包 + 本地安装”的方式,这是当前最可靠的方案。

3.2.1 下载目录准备

为便于管理,创建专门的下载目录,避免与系统其他文件混淆:

[root@worker3 ~]# cd /tmp/
[root@worker3 tmp]# mkdir devel
[root@worker3 tmp]# cd devel/
[root@worker3 devel]# 

image.png

3.2.2 kernel-lt 主包与devel包下载

选择 ELRepo 归档镜像站(coreix.net)下载 kernel-lt-5.4.218 主内核包和devel包(devel包用于后续软件编译依赖,建议必装):

[root@worker3 devel]# wget http://mirrors.coreix.net/elrepo-archive-archive/kernel/el7/x86_64/RPMS/kernel-lt-5.4.218-1.el7.elrepo.x86_64.rpm
--2025-12-01 16:50:51--  http://mirrors.coreix.net/elrepo-archive-archive/kernel/el7/x86_64/RPMS/kernel-lt-5.4.218-1.el7.elrepo.x86_64.rpm
Resolving mirrors.coreix.net (mirrors.coreix.net)... 85.13.241.50, 2a01:c0:2:3d::2
Connecting to mirrors.coreix.net (mirrors.coreix.net)|85.13.241.50|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 52711672 (50M) [application/x-rpm]
Saving to: ‘kernel-lt-5.4.218-1.el7.elrepo.x86_64.rpm’

100%[========================================================>] 52,711,672  84.1KB/s   in 12m 51s

2025-12-01 17:03:43 (66.8 KB/s) - ‘kernel-lt-5.4.218-1.el7.elrepo.x86_64.rpm’ saved [52711672/52711672]

[root@worker3 devel]# 

image.png

继续下载devel包:

[root@worker3 devel]# wget http://mirrors.coreix.net/elrepo-archive-archive/kernel/el7/x86_64/RPMS/kernel-lt-devel-5.4.218-1.el7.elrepo.x86_64.rpm
--2025-12-01 17:04:14--  http://mirrors.coreix.net/elrepo-archive-archive/kernel/el7/x86_64/RPMS/kernel-lt-devel-5.4.218-1.el7.elrepo.x86_64.rpm
Resolving mirrors.coreix.net (mirrors.coreix.net)... 85.13.241.50, 2a01:c0:2:3d::2
Connecting to mirrors.coreix.net (mirrors.coreix.net)|85.13.241.50|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 13520380 (13M) [application/x-rpm]
Saving to: ‘kernel-lt-devel-5.4.218-1.el7.elrepo.x86_64.rpm’

100%[========================================================>] 13,520,380  99.0KB/s   in 2m 49s 

2025-12-01 17:07:03 (78.2 KB/s) - ‘kernel-lt-devel-5.4.218-1.el7.elrepo.x86_64.rpm’ saved [13520380/13520380]

[root@worker3 devel]# 

image.png

3.2.3 备选下载方案(链接失效处理)

若上述镜像站链接失效,可通过以下方式获取:

  1. 直接访问 ELRepo 归档目录浏览下载:http://mirrors.coreix.net/elrepo-archive-archive/kernel/el7/x86_64/RPMS/
  2. 选择 5.4 系列其他稳定版本(如 5.4.225,同样为 LTS 迭代版),替换下载链接中的版本号即可:
wget http://mirrors.coreix.net/elrepo-archive-archive/kernel/el7/x86_64/RPMS/kernel-lt-5.4.225-1.el7.elrepo.x86_64.rpm wget http://mirrors.coreix.net/elrepo-archive-archive/kernel/el7/x86_64/RPMS/kernel-lt-devel-5.4.225-1.el7.elrepo.x86_64.rpm

image.png

3.3 内核 RPM 包安装

3.3.1 直接安装操作

使用 rpm -ivh 命令安装下载的内核包,该命令会保留旧内核,仅新增安装新内核,安全性更高:

[root@worker3 devel]# ls
kernel-lt-5.4.218-1.el7.elrepo.x86_64.rpm  kernel-lt-devel-5.4.218-1.el7.elrepo.x86_64.rpm
[root@worker3 devel]# rpm -ivh kernel-lt-5.4.218-1.el7.elrepo.x86_64.rpm \
>         kernel-lt-devel-5.4.218-1.el7.elrepo.x86_64.rpm
Preparing...                          ################################# [100%]
Updating / installing...
   1:kernel-lt-devel-5.4.218-1.el7.elr################################# [ 50%]
   2:kernel-lt-5.4.218-1.el7.elrepo   ################################# [100%]
[root@worker3 devel]# 

image.png
输出中显示“100%”且无报错,说明安装成功。

3.3.2 安装冲突处理方案

若安装时提示“kernel-tools”“kernel-headers”等包冲突(如“file /usr/bin/kernel-install from install of kernel-lt-devel-xxx conflicts with file from package kernel-headers-xxx”),可先卸载冲突包(此类包对系统基础运行无影响),再重新安装:

yum remove -y kernel-tools kernel-tools-libs kernel-headers # 卸载完成后重新执行安装命令 rpm -ivh kernel-lt-5.4.218-1.el7.elrepo.x86_64.rpm kernel-lt-devel-5.4.218-1.el7.elrepo.x86_64.rpm

3.4 GRUB 配置修复与优化

安装新内核后,CentOS 7 可能未自动更新 GRUB 启动配置,导致重启后无法识别新内核,需手动完成配置修复。

3.4.1 必要工具安装(grub2-tools、dracut)

如 2.2.2 所示,若系统未安装 grub2-tools,需先执行以下命令安装(dracut 若未安装也需补充):

[root@worker3 devel]# yum install -y grub2-tools dracut
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * elrepo: mirror.rackspace.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
Package dracut-033-572.el7.x86_64 already installed and latest version
Resolving Dependencies
--> Running transaction check
---> Package grub2-tools.x86_64 1:2.02-0.87.0.2.el7.centos.14 will be installed
--> Processing Dependency: grub2-tools-minimal = 1:2.02-0.87.0.2.el7.centos.14 for package: 1:grub2-tools-2.02-0.87.0.2.el7.centos.14.x86_64
--> Processing Dependency: grub2-common = 1:2.02-0.87.0.2.el7.centos.14 for package: 1:grub2-tools-2.02-0.87.0.2.el7.centos.14.x86_64
--> Running transaction check
---> Package grub2-common.noarch 1:2.02-0.87.0.2.el7.centos.14 will be installed
---> Package grub2-tools-minimal.x86_64 1:2.02-0.87.0.2.el7.centos.14 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

==================================================================================================
 Package                   Arch         Version                               Repository     Size
==================================================================================================
Installing:
 grub2-tools               x86_64       1:2.02-0.87.0.2.el7.centos.14         updates       1.8 M
Installing for dependencies:
 grub2-common              noarch       1:2.02-0.87.0.2.el7.centos.14         updates       733 k
 grub2-tools-minimal       x86_64       1:2.02-0.87.0.2.el7.centos.14         updates       178 k

Transaction Summary
==================================================================================================
Install  1 Package (+2 Dependent packages)

Total download size: 2.7 M
Installed size: 14 M
Downloading packages:
(1/3): grub2-tools-2.02-0.87.0.2.el7.centos.14.x86_64.rpm                  | 1.8 MB  00:00:00     
(2/3): grub2-common-2.02-0.87.0.2.el7.centos.14.noarch.rpm                 | 733 kB  00:00:00     
(3/3): grub2-tools-minimal-2.02-0.87.0.2.el7.centos.14.x86_64.rpm          | 178 kB  00:00:00     
--------------------------------------------------------------------------------------------------
Total                                                              11 MB/s | 2.7 MB  00:00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Warning: RPMDB altered outside of yum.
** Found 1 pre-existing rpmdb problem(s), 'yum check' output follows:
PackageKit-1.1.10-2.el7.centos.x86_64 has missing requires of PackageKit-backend
  Installing : 1:grub2-common-2.02-0.87.0.2.el7.centos.14.noarch                              1/3 
  Installing : 1:grub2-tools-minimal-2.02-0.87.0.2.el7.centos.14.x86_64                       2/3 
  Installing : 1:grub2-tools-2.02-0.87.0.2.el7.centos.14.x86_64                               3/3 
  Verifying  : 1:grub2-tools-2.02-0.87.0.2.el7.centos.14.x86_64                               1/3 
  Verifying  : 1:grub2-tools-minimal-2.02-0.87.0.2.el7.centos.14.x86_64                       2/3 
  Verifying  : 1:grub2-common-2.02-0.87.0.2.el7.centos.14.noarch                              3/3 

Installed:
  grub2-tools.x86_64 1:2.02-0.87.0.2.el7.centos.14                                                

Dependency Installed:
  grub2-common.noarch 1:2.02-0.87.0.2.el7.centos.14                                               
  grub2-tools-minimal.x86_64 1:2.02-0.87.0.2.el7.centos.14                                        

Complete!
[root@worker3 devel]# 

image.png

3.4.2 新内核文件存在性验证

安装完成后,先确认新内核的核心文件已正确写入 /boot 目录:

[root@worker3 devel]# ls /boot/vmlinuz-*5.4*
/boot/vmlinuz-5.4.218-1.el7.elrepo.x86_64
[root@worker3 devel]# 

image.png
若输出 /boot/vmlinuz-5.4.218-1.el7.elrepo.x86_64,说明内核文件存在,可继续后续操作。

3.4.3 initramfs 镜像手动生成

initramfs 是系统启动时的临时根文件系统,包含内核启动所需的驱动和工具,需为新内核手动生成:

[root@worker3 devel]# dracut -f /boot/initramfs-5.4.218-1.el7.elrepo.x86_64.img 5.4.218-1.el7.elrepo.x86_64 [root@worker3 devel]#

image.png
-f 参数表示强制覆盖已存在的镜像文件,执行后无报错即生成成功。

3.4.4 GRUB 配置重新生成

使用 grub2-mkconfig 命令重新扫描系统内核,生成新的 GRUB 配置文件:

[root@worker3 devel]# grub2-mkconfig -o /boot/grub2/grub.cfg Generating grub configuration file ... Found linux image: /boot/vmlinuz-5.4.218-1.el7.elrepo.x86_64 Found initrd image: /boot/initramfs-5.4.218-1.el7.elrepo.x86_64.img Found linux image: /boot/vmlinuz-3.10.0-1160.90.1.el7.x86_64 Found linux image: /boot/vmlinuz-3.10.0-693.el7.x86_64 Found initrd image: /boot/initramfs-3.10.0-693.el7.x86_64.img Found linux image: /boot/vmlinuz-0-rescue-16660d17de2044e1a0e31c83898ba5aa Found initrd image: /boot/initramfs-0-rescue-16660d17de2044e1a0e31c83898ba5aa.img done [root@worker3 devel]#

image.png
输出中显示“Found linux image: /boot/vmlinuz-5.4.218-1.el7.elrepo.x86_64”,说明 GRUB 已识别新内核。

3.4.5 GRUB 启动项确认

再次查看 GRUB 菜单,确认新内核已添加到启动列表:

[root@worker3 devel]# awk -F\' '$1=="menuentry " {print i++ " : " $2}' /boot/grub2/grub.cfg 0 : CentOS Linux (5.4.218-1.el7.elrepo.x86_64) 7 (Core) 1 : CentOS Linux (3.10.0-1160.90.1.el7.x86_64) 7 (Core) 2 : CentOS Linux (3.10.0-693.el7.x86_64) 7 (Core) 3 : CentOS Linux (0-rescue-16660d17de2044e1a0e31c83898ba5aa) 7 (Core) [root@worker3 devel]#

image.png
新内核已作为第 0 项(默认启动项顺序),说明配置成功。

3.4.6 默认启动项设置

为确保重启后自动进入新内核,执行以下命令将第 0 项(新内核)设为默认启动项:

[root@worker3 devel]# grub2-set-default 0
[root@worker3 devel]# 

image.png

验证默认启动项设置:

[root@worker3 devel]# grub2-editenv list
saved_entry=0
[root@worker3 devel]# 

image.png
输出“saved_entry=0”,说明默认启动项设置成功。

3.5 系统重启与内核切换

3.5.1 重启操作执行

完成所有配置后,执行重启命令,使新内核生效:

[root@worker3 devel]# reboot 连接断开

image.png
重启过程中,系统会自动加载默认的新内核。

3.5.2 重启后连接确认

重启完成后,重新连接服务器,准备进行后续验证。

四、升级后全面验证

重启后需从多个维度验证内核升级效果,确保系统稳定、内核生效、软件兼容。

4.1 内核版本核心验证

4.1.1 运行内核版本确认

执行 uname -r 命令,确认当前运行的内核已切换为 5.4.218:

连接主机...
连接主机成功
Last login: Mon Dec  1 14:14:23 2025 from 10.9.0.26
[root@worker3 ~]# uname -r
5.4.218-1.el7.elrepo.x86_64
[root@worker3 ~]# 

image.png
输出结果与预期一致,说明内核切换成功。

4.1.2 已安装内核清单查看

查看系统中已安装的所有内核,确认旧内核未被删除,新内核已成功安装:

[root@worker3 ~]# rpm -q kernel kernel-lt
kernel-3.10.0-693.el7.x86_64
kernel-3.10.0-1160.90.1.el7.x86_64
kernel-3.10.0-1160.119.1.el7.x86_64
kernel-lt-5.4.218-1.el7.elrepo.x86_64
[root@worker3 ~]# 

image.png
输出显示,3.10 系列旧内核均保留,新内核 kernel-lt-5.4.218 已成功安装。

4.2 系统基础状态确认

4.2.1 操作系统版本一致性验证

确认操作系统版本仍为 CentOS 7.9,未因内核升级发生变更:

[root@worker3 ~]# cat /etc/redhat-release 
CentOS Linux release 7.9.2009 (Core)
[root@worker3 ~]# 

4.2.2 内核编译信息核查

查看内核编译信息,确认其适配 CentOS 7 的工具链:

[root@worker3 ~]# cat /proc/version
Linux version 5.4.218-1.el7.elrepo.x86_64 (mockbuild@Build64R7) (gcc version 9.3.1 20200408 (Red Hat 9.3.1-2) (GCC)) #1 SMP Fri Oct 14 10:57:22 EDT 2022
[root@worker3 ~]# 

image.png
输出显示内核由 GCC 9.3.1 编译,且针对 EL7 系统优化,确保了与系统工具链的兼容性。

4.3 业务软件兼容性验证

(建议根据实际业务场景补充)安装或启动之前与 3.10 内核不兼容的软件,验证其是否能正常运行。例如:

  • 启动 Kubernetes 集群组件,确认无启动报错;
  • 运行大数据处理任务,验证资源调度正常;
  • 启动机器学习框架,确认依赖库加载成功。

五、关键注意事项与故障预案

5.1 日常使用注意事项

5.1.1 旧内核保留原则

升级后切勿立即删除旧内核,建议保留至少 1-2 个 3.10 系列旧内核。若新内核运行过程中出现稳定性问题(如频繁 panic、硬件驱动不兼容),可在开机时通过 GRUB 菜单选择旧内核启动,快速恢复系统。

5.1.2 系统更新限制

CentOS 7 已 EOL,官方不再提供系统级更新,升级内核后无需执行 yum update 命令,避免意外覆盖新内核或导致依赖冲突。

5.2 常见故障排查方案

5.2.1 新内核无法启动问题

若重启后系统无法进入新内核,卡在启动界面或直接进入紧急模式,可按以下步骤处理:

  1. 重启服务器,开机时按 Esc 键进入 GRUB 菜单;
  2. 选择 3.10 系列旧内核启动,进入系统;
  3. 检查 /boot 目录空间是否充足(建议剩余空间 ≥ 1GB),若空间不足,删除无用的旧内核 initramfs 镜像或日志文件;
  4. 重新执行 dracut -f /boot/initramfs-5.4.218-1.el7.elrepo.x86_64.img 5.4.218-1.el7.elrepo.x86_64grub2-mkconfig -o /boot/grub2/grub.cfg 命令,修复配置后再次重启。

5.2.2 GRUB 菜单无新内核选项

若执行 grub2-mkconfig 后仍未识别新内核,可能是内核文件安装不完整,可按以下步骤处理:

  1. 重新下载 kernel-lt 主包和devel包,确保文件完整性;
  2. 执行 rpm -e kernel-lt-5.4.218-1.el7.elrepo.x86_64 kernel-lt-devel-5.4.218-1.el7.elrepo.x86_64 卸载已安装的新内核;
  3. 重新执行 rpm -ivh 命令安装,安装完成后再次生成 GRUB 配置。

5.2.3 软件编译依赖缺失

若后续编译软件时提示“kernel-headers not found”,需确认 kernel-lt-devel 包已正确安装,且 /usr/src/kernels/ 目录下存在 5.4.218 内核的源码目录:

ls /usr/src/kernels/5.4.218-1.el7.elrepo.x86_64

若不存在,重新安装 kernel-lt-devel 包即可。

总结

本次 CentOS 7.9 内核从 3.10 到 5.4.218 的升级,成功解决了老旧内核的软件兼容性瓶颈与 cgroup 稳定性风险,同时通过选择 LTS 版本内核,确保了生产环境的长期可靠运行。整个升级过程的核心在于:充分利用 ELRepo 归档仓库获取稳定的 kernel-lt 包,通过手动安装避免 yum 仓库停止支持的影响,同时重点修复 GRUB 配置,确保新内核能够正常启动。

作者注
——本文所有操作及测试均基于 CentOS 7.9 系统(内核3.10升级至5.4.218)完成,核心围绕内核特性适配、升级流程落地及稳定性验证等关键环节展开。需特别说明的是,CentOS 7 已正式结束生命周期(EOL),官方不再提供系统级更新与维护,长期来看建议升级至 CentOS 8 或 9 及以上版本以获得持续支持。CentOS 系统及内核版本处于持续迭代中,部分命令语法或功能特性可能随版本更新发生变化,最终请以 CentOS 官方文档最新内容为依据。
——本文观点仅为个人实践总结与技术探讨,不代表行业普遍共识。所有操作需在具备对应权限的环境中执行,尤其涉及生产环境时,务必提前完成全量备份与多轮测试,规避升级风险。期待与各位技术从业者深入交流,探索更多内核优化与系统运维的实践方案!

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论