openEuler 22.03-LTS 内核降/升级实施文档
·
openEuler 22.03-LTS 内核降/升级实施文档
目标:将内核降级至 5.10.0-60.63.0.89.oe2203.x86_64
系统:openEuler 22.03-LTS x86_64
当前内核:5.10.0-60.18.0.50 / 5.10.0-60.139.0.166.oe2203
风险提示:
- 操作需要重启服务器,选择业务维护窗口;
- 升级/降级内核存在驱动、业务异常风险,操作前务必创建云主机快照/系统备份;
- 内核多版本共存,启动失败可在GRUB菜单选择原有内核回滚;
- 完成后配置dnf黑名单,杜绝自动升级内核。
一、整体操作流程
- 备份原有repo源
- 替换可用华为云openEuler 22.03-LTS软件源(修复404源失效问题)
- 刷新dnf缓存
- 查询目标内核包是否存在
- 安装指定版本全套内核组件
- 设置目标内核为GRUB默认启动项
- 重启服务器验证内核版本
- 配置dnf全局黑名单,锁定内核禁止自动更新
- (可选)清理无用高版本内核
二、一键执行脚本(可直接复制运行)
新建脚本 kernel_downgrade_60_63.sh
#!/bin/bash
# openEuler 22.03-LTS 内核降级至 5.10.0-60.63.0.89.oe2203
# 操作前请先完成云主机快照备份!
set -e
echo "==================== 1.备份原有repo文件 ===================="
mkdir -p /etc/yum.repos.d/bak
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak/ 2>/dev/null
echo "==================== 2.写入华为云有效openEuler源 ===================="
cat > /etc/yum.repos.d/openEuler-22.03-LTS.repo <<EOF
[OS]
name=openEuler-22.03-LTS-OS
baseurl=https://repo.huaweicloud.com/openeuler/openEuler-22.03-LTS/OS/x86_64/
enabled=1
gpgcheck=1
gpgkey=https://repo.huaweicloud.com/openeuler/openEuler-22.03-LTS/OS/x86_64/RPM-GPG-KEY-openEuler
[update]
name=openEuler-22.03-LTS-update
baseurl=https://repo.huaweicloud.com/openeuler/openEuler-22.03-LTS/update/x86_64/
enabled=1
gpgcheck=1
gpgkey=https://repo.huaweicloud.com/openeuler/openEuler-22.03-LTS/OS/x86_64/RPM-GPG-KEY-openEuler
EOF
echo "==================== 3.刷新dnf缓存 ===================="
dnf clean all && dnf makecache
echo "==================== 4.校验目标内核包是否存在 ===================="
dnf list kernel --showduplicates | grep 5.10.0-60.63.0.89.oe2203
if [ $? -ne 0 ];then
echo "ERROR:软件源内未找到目标内核包!终止操作,请使用离线rpm方式安装"
exit 1
fi
echo "==================== 5.安装指定版本内核全套组件 ===================="
dnf install -y --allowerasing \
kernel-5.10.0-60.63.0.89.oe2203 \
kernel-devel-5.10.0-60.63.0.89.oe2203 \
kernel-headers-5.10.0-60.63.0.89.oe2203 \
kernel-tools-5.10.0-60.63.0.89.oe2203
echo "==================== 6.设置默认启动内核 ===================="
grubby --set-default /boot/vmlinuz-5.10.0-60.63.0.89.oe2203.x86_64
echo "当前默认启动内核:"
grubby --default-kernel
echo "==================== 7.配置dnf黑名单,锁定内核不自动升级 ===================="
grep -q "exclude=kernel*" /etc/dnf/dnf.conf || echo 'exclude=kernel* kernel-devel* kernel-headers* kernel-tools*' >> /etc/dnf/dnf.conf
echo "/etc/dnf/dnf.conf 锁定配置已写入"
echo "============================================="
echo "脚本执行完成!请执行 reboot 重启服务器生效"
echo "重启后执行 uname -r 验证内核版本"
echo "============================================="
脚本运行方式
chmod +x kernel_downgrade_60_63.sh
bash kernel_downgrade_60_63.sh
# 脚本执行无误后重启
reboot
# 重启验证
uname -r
三、验证命令集
# 查看当前内核
uname -r
# 查看所有已安装内核
rpm -qa | grep kernel
# 查看GRUB默认启动内核
grubby --default-kernel
# 检查dnf锁定配置
cat /etc/dnf/dnf.conf | grep exclude
四、可选操作:清理多余高版本内核(谨慎!至少保留一个内核用于回滚)
dnf remove -y kernel-5.10.0-60.18.0.50.oe2203 kernel-5.10.0-60.139.0.166.oe2203
五、故障回滚方案
服务器启动时GRUB引导菜单 → Advanced options for openEuler → 选择原有高版本内核启动。
启动成功后重新执行:
grubby --set-default /boot/vmlinuz-原有内核完整名称.x86_64
六、补充异常预案
若源中检索不到5.10.0-60.63.0.89版本,在线安装失败,切换离线rpm包安装方案
七、重要注意事项
--allowerasing用于处理依赖冲突,不会删除业务应用;- SP系列源(2203SP1/SP4)不存在
5.10.0-60.xx内核,必须使用原始22.03-LTS基础源; - 内核黑名单写入后,后续执行
dnf update不会更新内核;后续如需升级内核,手动删除/etc/dnf/dnf.conf内exclude行。
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐

所有评论(0)