在 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
相关推荐
skywalk81636 分钟前
unbound dns解析出现问题,寻求解决之道
运维·服务器·dns·unbound
酉鬼女又兒8 分钟前
零基础入门Linux指南:每天一个Linux命令_pwd
linux·运维·服务器
云飞云共享云桌面10 分钟前
高性能图形工作站的资源如何共享给10个SolidWorks研发设计用
linux·运维·服务器·前端·网络·数据库·人工智能
skywalk816312 分钟前
走近科学:unbound dns域名服务器自己本地解析出现问题,寻求解决之道
运维·服务器·dns·unbound
zl_dfq12 分钟前
Linux 之 【多线程】(pthread_xxx、轻量级进程、原生线程库、线程ID、__thread、线程栈、线程与信号、线程与程序替换)
linux
choke23313 分钟前
Python 基础语法精讲:数据类型、运算符与输入输出
java·linux·服务器
袁煦丞 cpolar内网穿透实验室16 分钟前
远程调试内网 Kafka 不再求运维!cpolar 内网穿透实验室第 791 个成功挑战
运维·分布式·kafka·远程工作·内网穿透·cpolar
AZ996ZA26 分钟前
自学linux的第二十一天【DHCP 服务从入门到实战】
linux·运维·服务器·php
_OP_CHEN32 分钟前
【Linux系统编程】(二十八)深入 ELF 文件原理:从目标文件到程序加载的完整揭秘
linux·操作系统·编译·c/c++·目标文件·elf文件
Fleshy数模1 小时前
MySQL 表创建全攻略:Navicat 图形化与 Xshell 命令行双模式实践
linux·mysql