You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

离线环境下通过ISO将RHEL 7.9虚拟机升级至RHEL 8.6时Leapp预升级报错求助

离线环境下通过ISO将RHEL 7.9虚拟机升级至RHEL 8.6时Leapp预升级报错求助

针对你遇到的这些Leapp预升级报错,我整理了逐个问题的离线可行解决步骤,帮你推进升级:


一、核心阻止升级的问题处理

1. 已加载的内核驱动在RHEL 8中被移除

首先得明确具体是哪些驱动触发的问题,执行命令查看详细报告:

leapp report

根据报告里的驱动名称,对应处理:

  • 如果是第三方非必需驱动:直接卸载驱动包,比如rpm -e <driver-package-name>,重启系统确认驱动不再加载后,重新运行预升级。
  • 如果是系统内置驱动:在/etc/modprobe.d/下新建blacklist-<driver-name>.conf文件,写入blacklist <driver-name>,重启后确认驱动未加载再重试。
  • 要是驱动是业务必需的:从Red Hat官方获取RHEL 8兼容的驱动包(离线场景可从联网的RHEL 8机器下载对应rpm),传到目标机器安装后再执行升级。

2. 未使用最新安装的内核

先核对当前运行内核和已安装内核版本:

# 查看当前运行的内核
uname -r
# 查看所有已安装的内核
rpm -qa kernel | sort

如果确实有更新的内核未运行,直接重启虚拟机,在GRUB菜单中选择最新内核启动,之后重新执行leapp preupgrade命令。

3. root远程登录可能存在问题

这是警告类提示,不会直接阻止升级,但需要提前知晓:RHEL 8默认会禁用root用户的SSH远程登录(PermitRootLogin会被设为prohibit-password或no)。

  • 若需要保留root远程登录:升级前修改/etc/ssh/sshd_config,将PermitRootLogin设为yes(更推荐用普通用户+sudo替代),或者升级后再调整配置。
  • 不需要的话可直接忽略该提示,升级后遵循默认规则即可。

4. 答案文件中缺少必要的回答

Leapp预升级会生成需要确认的配置项,先查看所有待填写的项:

leapp answer --list

针对每个缺失项,用命令补充回答,比如确认PAM配置迁移:

leapp answer --section remove_pam_pkcs11_module_check.confirm --add True

也可以直接编辑/var/log/leapp/answerfile文件,手动补充缺失内容,保存后重新运行预升级。


二、高/中 severity 问题处理

1. 排除的仓库中的包无法安装

先检查系统的yum仓库配置:

grep -r "exclude" /etc/yum.repos.d/
  • 如果排除的仓库包含升级必需的包:修改对应repo文件,移除exclude字段,或者挂载ISO后从Packages目录提取对应rpm手动安装。
  • 如果是非必需的包:可忽略提示,但建议确认这些包是否影响系统核心功能,避免升级后出现异常。

2. Python版本差异问题

RHEL 7默认用Python 2,RHEL 8默认是Python 3,需要做这些准备:

  • 检查系统中自定义的Python脚本,将依赖Python 2的脚本迁移到Python 3,或者从ISO的Packages目录找到python2相关rpm,用rpm -ivh安装兼容包。
  • 系统层面的Python迁移Leapp会自动处理,但自定义应用的兼容性需要你提前测试验证。

备注:内容来源于stack exchange,提问作者King David

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.17 08:25:29