在 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
相关推荐
xcbeyond4 分钟前
Linux 磁盘挂载
linux·运维·服务器
Dontla10 分钟前
santifer/career-ops介绍(使用Claude Code自动化搜索招聘岗位并分析)(Playwright、Chromium)
运维·自动化
LoneEon11 分钟前
Kubernetes高可用集群部署教程
linux·docker·kubernetes
小羽网安40 分钟前
Linux 服务器如何进行安全加固?
linux·服务器·安全
倔强的胖蚂蚁1 小时前
AI 人工智能配置管理 Nginx
运维·nginx·云原生
上海云盾安全满满1 小时前
服务器如果做好日常维护,有什么作用
运维·服务器
正在走向自律1 小时前
企业级数据库存储运维实战:表空间自动创建与存储架构深度优化
运维·数据库·架构·表空间
念风1 小时前
[Linux学习笔记]Uboot-DM的分析过程
linux
想唱rap1 小时前
计算机网络基础
linux·计算机网络·mysql·ubuntu·bash
Agent产品评测局1 小时前
图片生成智能体哪家好?2026年企业级视觉创作与自动化选型全景横评
运维·人工智能·ai·自动化