在 CentOS 7/RHEL 7 上安装并切换至新版内核

一、 准备工作:导入仓库与公钥

由于我们要在非 Oracle Linux 系统上安装 UEK 内核,首先需要配置 Oracle Linux 的官方 YUM 源。这将允许我们直接通过 yum 命令获取内核包。

1. 导入 Oracle Linux GPG 公钥

这是验证软件包合法性的关键步骤,防止中间人攻击。

bash 复制代码
rpm --import https://yum.oracle.com/RPM-GPG-KEY-oracle-ol7

2. 安装 Oracle Linux 仓库配置包

该操作会下载并安装 oraclelinux-release-el7 包,安装后系统会在 /etc/yum.repos.d/ 目录下自动生成 Oracle 的仓库文件(如 oracle-linux-ol7.repo)。

bash 复制代码
yum install https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/getPackage/oraclelinux-release-el7-1.0-11.el7.x86_64.rpm -y

二、 选择并启用 UEK 内核仓库

Oracle 默认提供多个版本的 UEK 内核。UEK R5 基于 4.14 内核,UEK R6 基于 5.4 内核。为了安装最新版本,我们以启用 UEK R6 为例进行演示。

1. 查看当前可用的 UEK 包(可选)

在启用仓库前,通常只能看到旧版本或无可用包。

bash 复制代码
yum list available | grep kernel-uek
bash 复制代码
kernel-uek.x86_64                        4.14.35-2047.543.3.1.el7uek  ol7_UEKR5 
kernel-uek-debug.x86_64                  4.14.35-2047.543.3.1.el7uek  ol7_UEKR5 
kernel-uek-debug-devel.x86_64            4.14.35-2047.543.3.1.el7uek  ol7_UEKR5 
kernel-uek-devel.x86_64                  4.14.35-2047.543.3.1.el7uek  ol7_UEKR5 
kernel-uek-doc.noarch                    4.14.35-2047.543.3.1.el7uek  ol7_UEKR5 
kernel-uek-tools.x86_64                  4.14.35-2047.543.3.1.el7uek  ol7_UEKR5 

2. 启用 UEK Release 6 仓库

使用 yum-config-manager 启用 ol7_UEKR6 仓库。如果报错提示命令不存在,请先安装 yum-utils 包:yum install yum-utils -y

bash 复制代码
yum-config-manager --enable ol7_UEKR6

注意 :如果你想安装 UEK R5,只需将上述命令中的 ol7_UEKR6 替换为 ol7_UEKR5

3. 重建 YUM 缓存

启用新仓库后,必须清理缓存并重建元数据,确保系统能识别到最新的内核包。

bash 复制代码
yum clean all
yum makecache

再次检查列表,确认已出现 UEK R6 的内核包(版本号通常以 5.4 开头)。

bash 复制代码
yum list available | grep kernel-uek
bash 复制代码
kernel-uek-container.x86_64              5.4.17-2136.338.4.2.el7uek   ol7_UEKR6 
kernel-uek-container-debug.x86_64        5.4.17-2136.338.4.2.el7uek   ol7_UEKR6 
kernel-uek-debug.x86_64                  5.4.17-2136.338.4.2.el7uek   ol7_UEKR6 
kernel-uek-debug-devel.x86_64            5.4.17-2136.338.4.2.el7uek   ol7_UEKR6 
kernel-uek-doc.noarch                    5.4.17-2136.338.4.2.el7uek   ol7_UEKR6 
kernel-uek-tools.x86_64                  5.4.17-2136.338.4.2.el7uek   ol7_UEKR6 

三、 安装 UEK 内核

执行以下命令安装内核及其开发包。kernel-uek 是核心包,kernel-uek-devel 包含编译内核模块所需的头文件,建议一并安装。

bash 复制代码
yum install -y kernel-uek kernel-uek-devel

安装过程会自动更新 GRUB2 引导配置,但通常不会将其设为第一启动项。

四、 切换默认启动内核(关键步骤)

安装完成后,默认启动的内核依然是旧的 CentOS/RHEL 内核。我们需要修改 GRUB2 配置,将刚安装的 UEK 内核设为默认启动项。

1. 查看所有已安装的内核

确认 UEK 内核的索引位置。注意:编号从 0 开始。

bash 复制代码
awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg

输出示例:

text 复制代码
0 : CentOS Linux (5.4.17-2136.338.4.2.el7uek.x86_64) 7 (Core)
1 : CentOS Linux (3.10.0-1160.el7.x86_64) 7 (Core)
2 : CentOS Linux (0-rescue-4322e8a3d4f54b73b6f3ac05a70ae92b) 7 (Core)

从输出可以看出,UEK 内核位于索引 0

2. 设置默认启动项

使用 grub2-set-default 命令设置对应的索引号(以刚才查到的 0 为例)。

bash 复制代码
grub2-set-default 0

3. 生成 GRUB 配置文件并验证

为了确保配置生效,重新生成 grub 配置文件,并查看当前默认启动项是否正确。

bash 复制代码
grub2-mkconfig -o /boot/grub2/grub.cfg
grub2-editenv list

如果 saved_entry 显示为你刚才设定的 UEK 内核标题,则配置成功。

五、 重启与验证

1. 重启系统

bash 复制代码
reboot

2. 验证当前内核

系统重启上线后,使用 uname 命令检查当前运行的内核版本。如果版本号以 5.4.17(R6)或 4.14.35(R5)开头,说明切换成功。

bash 复制代码
uname -r

预期输出示例(UEK R6):

text 复制代码
5.4.17-2136.338.4.2.el7uek.x86_64
相关推荐
三不原则2 小时前
故障案例:数据库慢查询导致交易延迟,AIOps 如何自动定位?
运维·数据库
gzxx2007sddx2 小时前
ubuntu挂载访问windows的共享文件夹
linux·运维·ubuntu·挂载·共享
市安2 小时前
基于 LVS+Keepalived+NFS 的高可用 Web 集群构建与验证
运维·服务器·网络·lvs·keepalived·ipvsadm
AC赳赳老秦2 小时前
Dify工作流+DeepSeek:运维自动化闭环(数据采集→报告生成)
android·大数据·运维·数据库·人工智能·golang·deepseek
真的想上岸啊3 小时前
4、修改开发板内核启动日志级别
linux
RisunJan3 小时前
Linux命令-kill(向进程发送信号的核心命令)
linux·运维·服务器
物理与数学3 小时前
linux内核 页缓存的脏页管理
linux·linux内核
WilliamHu.3 小时前
Windows 环境下使用 Docker 成功部署 Dify(完整实战记录)
运维·docker·容器
范纹杉想快点毕业3 小时前
嵌入式工程师一年制深度进阶学习计划(纯技术深耕版)
linux·运维·服务器·c语言·数据库·算法