一、 准备工作:导入仓库与公钥
由于我们要在非 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