适用于:✔️ Linux VM
总结
本文介绍如何解决涉及 Red Hat 操作系统上的 leapp 升级过程的常见故障排除问题。
在 Red Hat Enterprise Linux (RHEL) 上进行重大升级涉及从一个主要版本过渡到另一个主要版本,例如从 RHEL 7 到 RHEL 8 或从 RHEL 8 到 RHEL 9。 重大升级带来了重大变化,包括新功能、增强功能以及安全性和性能方面的改进。 该过程可能很复杂,但 Red Hat 提供了简化和精简升级过程的工具和指导。
一个示例是 Leapp 工具。 Leapp 工具旨在将 RHEL 系统的升级过程自动化到下一个主要版本。 它执行检查、提供建议,并帮助解决升级过程中发生的任何问题。 本文讨论如何在 Red Hat 操作系统进行重大升级时,使用 Leapp 工具来排除常见问题。
注意
2024 年 6 月 30 日,Red Hat Enterprise Linux 7 已终止维护支持 2 阶段。 维护阶段之后是扩展生命阶段。 当 Red Hat Enterprise Linux 7 从完整和维护阶段过渡时,应升级到 Red Hat Enterprise Linux 8 或 9。 如果必须保留在 Red Hat Enterprise Linux 7 上,建议添加 Red Hat Enterprise Linux 扩展生命周期支持(ELS)加载项。
升级前的建议
在开始 Leapp 预升级和升级过程之前,请确保执行以下作:
- 备份虚拟机(VM)或 OS 磁盘的快照。
- 在
/var/lib/leapp中清理出足够的空间以进行升级。 最佳做法是至少有 2-5 GB 的可用可用空间。 - 设置对串行控制台的访问权限。
完成这些任务后,可以通过串行控制台启动 Leapp 预升级和升级过程。
抑制问题和错误
抑制问题 是在预升级评估期间确定的特定问题,以防止升级继续。 这些问题至关重要,必须先解决,然后才能继续升级。 必须在升级期间和之后消除抑制问题,以保持系统的稳定性和功能。
错误 是指在升级过程中可能发生的问题,这些问题可能会导致中断或失败。 在预升级检查和实际升级期间,这些错误可能在不同的阶段发生。
常见类型的抑制剂
| 抑制剂类型 | 说明 |
|---|---|
| 不支持的软件包 | 当前系统中安装的包在目标版本中不可用或不受支持 |
| 不兼容的硬件 | 目标版本中不支持的硬件组件 |
| 配置问题 | 与新版本不兼容且需要调整的系统配置 |
| 第三方软件 | 可能会干扰升级过程的非 Red Hat 软件 |
| 文件系统布局 | 涉及 OS 文件系统布局的问题,例如目标版本中不支持的分区方案 |
| 网络更改 | 必须更新的网络配置才能与新版本的网络堆栈保持一致 |
| 自定义脚本 | 可能与新版本不兼容的自定义脚本或 cron 作业 |
常见错误类型
| 错误类型 | 说明 |
|---|---|
| 安装失败 | 在升级期间安装包时发生的错误 |
| 服务故障 | 在升级过程中无法正确启动或停止的服务 |
| 文件系统问题 | 涉及磁盘空间、文件损坏或装入点的问题 |
| 网络问题 | 影响下载或安装包的网络连接问题 |
在 Leapp 报告中寻找阻碍因素或错误
Leapp 报表位于 /var/log/leapp/leapp-report.txt. 打开报告并查找标记为抑制物的部分。 这些部分列出了必须解决的问题。
对于每个抑制物,报告通常提供详细的修正步骤。 这些步骤可能包括要运行的命令、要安装的包或要进行的配置更改。
以下列表包含描述抑制剂及其修正的输出的常见事件:
-
抑制剂输出 1
Inhibitor: Missing package 'pkg_name' required for upgrade. Remediation: Install the missing package by running: [command] sudo yum install pkg_name -
抑制剂输出 2
Risk Factor: high (inhibitor) Title: Possible problems with remote login using root account Summary: OpenSSH configuration file does not explicitly state the option PermitRootLogin in sshd_config file, which will default in RHEL8 to "prohibit-password". Remediation: [hint] If you depend on remote root logins using passwords, consider setting up a different user for remote administration or adding "PermitRootLogin yes" to sshd_config. If this change is ok for you, add explicit "PermitRootLogin prohibit-password" to your sshd_config to ignore this inhibitor -
抑制剂输出 3
Risk Factor: high (inhibitor) Title: Missing required answers in the answer file Summary: One or more sections in answerfile are missing user choices: remove_pam_pkcs11_module_check.confirm For more information consult https://red.ht/leapp-dialogs. Remediation: [hint] Please register user choices with leapp answer cli command or by manually editing the answerfile. [command] leapp answer --section remove_pam_pkcs11_module_check.confirm=True -
抑制剂输出 4
Risk Factor: high (inhibitor) Title: Use of CIFS detected. Upgrade can't proceed Summary: CIFS is currently not supported by the inplace upgrade. Remediation: [hint] Comment out CIFS entries to proceed with the upgrade. -
抑制剂输出 5
Risk Factor: high (inhibitor) Title: Detected loaded kernel drivers which have been removed in RHEL 8. Upgrade cannot proceed. Summary: Support for the following RHEL 7 device drivers has been removed in RHEL 8: pata_acpi floppy Remediation: blocklist modules that are unsupported in RHEL 8 (floppy and pata_acpi) or unload the modules by running [command] sudo rmmod floppy pata_acpi -
抑制剂输出 6
Risk Factor: high (inhibitor) Title: Btrfs has been removed from RHEL8 Summary: The Btrfs file system was introduced as Technology Preview with the initial release of Red Hat Enterprise Linux 6 and Red Hat Enterprise Linux 7. As of versions 6.6 and 7.4 this technology has been deprecated and removed in RHEL8. Remediation: If filesystem is currently mounted with BTRFS proceed with fresh reinstallation as it is no longer supported on Red Hat Enterprise Linux 8 If any btrfs is not currently in use by any filesystem, remove the btrfs module using the [command] modprobe -rv btrfs -
抑制剂输出 7
Inhibitor: Newest installed kernel not in use Remediation: If the system is having the latest RHEL7 kernel installed, take a reboot and boot the system from the latest kernel. If the system is NOT having the latest RHEL7 kernel installed, install it using [command] yum install <latest kernel package> -
抑制剂输出 8
Risk Factor: high (inhibitor) Title: Multiple devel kernels installed Summary: DNF cannot produce a valid upgrade transaction when multiple kernel-devel packages are installed. Remediation: [hint] Remove all but one kernel-devel packages before running Leapp again. [command] yum -y remove kernel-devel-X.XX.X-XXX.XXX kernel-devel-X.XX.X-XXXX.XXX.X.XXX -
抑制剂输出 9
Risk Factor: medium (inhibitor) Title: A YUM/DNF repository defined multiple times Summary: The following repositories are defined multiple times inside the "upgrade" container: - repo-id Remediation: [hint] Remove the duplicate repository definitions or change repoids of conflicting repositories on the system to prevent the conflict -
抑制剂输出 10
Risk Factor: high (inhibitor) Title: Firewalld Configuration AllowZoneDrifting Is Unsupported Summary: Firewalld has enabled configuration option "AllowZoneDrifiting" which has been removed in RHEL-9. New behavior is as if "AllowZoneDrifiting" was set to "no". Related links: - Changes in firewalld related to Zone Drifting: https://access.redhat.com/articles/4855631 Remediation: [hint] Set AllowZoneDrifting=no in /etc/firewalld/firewalld.conf [command] sed -i s/^AllowZoneDrifting=.*/AllowZoneDrifting=no/ /etc/firewalld/firewalld.conf
备注
仔细检查整个预降级报告,即使它没有列出任何抑制物。 报告提供了升级前需要执行的推荐操作,以确保系统在升级后正常运行。
修复所有抑制物后,请再次运行预升级检查,以确保所有问题都得到解决。
Leapp 预降级常见问题
预降级症状 1:损坏或缺少 urllib3 库
Python中损坏或缺少 urllib3 库将生成以下错误消息:
Traceback (most recent call last):
File "/bin/leapp", line 9, in <module>
load_entry_point('leapp==0.16.0', 'console_scripts', 'leapp')()
File "/usr/lib/python2.7/site-packages/leapp/cli/__init__.py", line 43, in main
_load_commands(cli.command)
File "/usr/lib/python2.7/site-packages/leapp/cli/__init__.py", line 27, in _load_commands
package = pkgutil.get_loader(package_name).load_module(package_name)
File "/usr/lib64/python2.7/pkgutil.py", line 246, in load_module
mod = imp.load_module(fullname, self.file, self.filename, self.etc)
File "/usr/lib/python2.7/site-packages/leapp/cli/commands/list_runs/__init__.py", line 6, in <module>
from leapp.cli.commands.upgrade.util import fetch_all_upgrade_contexts
File "/usr/lib/python2.7/site-packages/leapp/cli/commands/upgrade/__init__.py", line 9, in <module>
from leapp.logger import configure_logger
File "/usr/lib/python2.7/site-packages/leapp/logger/__init__.py", line 10, in <module>
from leapp.utils.actorapi import get_actor_api, RequestException
File "/usr/lib/python2.7/site-packages/leapp/utils/actorapi.py", line 4, in <module>
import requests
File "/usr/lib/python2.7/site-packages/requests/__init__.py", line 58, in <module>
from . import utils
File "/usr/lib/python2.7/site-packages/requests/utils.py", line 32, in <module>
from .exceptions import InvalidURL
File "/usr/lib/python2.7/site-packages/requests/exceptions.py", line 10, in <module>
from urllib3.exceptions import HTTPError as BaseHTTPError
ImportError: No module named urllib3.exceptions
预升级解决方案 1:重新安装 python-urllib3 包
运行以下命令重新安装 python-urllib3 包:
sudo mv /usr/lib/python2.7/site-packages/urllib3 /tmp/
sudo yum reinstall python-urllib3
预升级症状 2:连接在 30,001 毫秒后超时
Red Hat 更新基础结构 RHUI IP 地址的通信阻断会生成以下错误消息:
Risk Factor: high (error)
Title: Actor rpm_scanner unexpectedly terminated with exit code: 1
Summary: Traceback (most recent call last):
File "/usr/lib/python2.7/site-packages/leapp/repository/actor_definition.py", line 74, in _do_run
actor_instance.run(*args, **kwargs)
File "/usr/lib/python2.7/site-packages/leapp/actors/__init__.py", line 289, in run
self.process(*args)
File "/usr/share/leapp-repository/repositories/system_upgrade/common/actors/rpmscanner/actor.py", line 20, in process
rpmscanner.process()
File "/usr/share/leapp-repository/repositories/system_upgrade/common/actors/rpmscanner/libraries/rpmscanner.py", line 110, in process
pkg_repos = get_package_repository_data()
File "/usr/share/leapp-repository/repositories/system_upgrade/common/actors/rpmscanner/libraries/rpmscanner.py", line 77, in get_package_repository_data
return _get_package_repository_data_yum()
File "/usr/share/leapp-repository/repositories/system_upgrade/common/actors/rpmscanner/libraries/rpmscanner.py", line 31, in _get_package_repository_data_yum
for pkg in yum_base.doPackageLists().installed:
File "/usr/lib/python2.7/site-packages/yum/__init__.py", line 2981, in doPackageLists
avail = self.pkgSack.returnNewestByNameArch(patterns=patterns,
File "/usr/lib/python2.7/site-packages/yum/__init__.py", line 1075, in <lambda>
pkgSack = property(fget=lambda self: self._getSacks(),
File "/usr/lib/python2.7/site-packages/yum/__init__.py", line 778, in _getSacks
self.repos.populateSack(which=repos)
File "/usr/lib/python2.7/site-packages/yum/repos.py", line 347, in populateSack
self.doSetup()
File "/usr/lib/python2.7/site-packages/yum/repos.py", line 157, in doSetup
self.retrieveAllMD()
File "/usr/lib/python2.7/site-packages/yum/repos.py", line 88, in retrieveAllMD
dl = repo._async and repo._commonLoadRepoXML(repo)
File "/usr/lib/python2.7/site-packages/yum/yumRepo.py", line 1482, in _commonLoadRepoXML
result = self._getFileRepoXML(local, text)
File "/usr/lib/python2.7/site-packages/yum/yumRepo.py", line 1259, in _getFileRepoXML
size=102400) # setting max size as 100K
File "/usr/lib/python2.7/site-packages/yum/yumRepo.py", line 1042, in _getFile
raise e
NoMoreMirrorsRepoError: failure: repodata/repomd.xml from rhel-7-server-ansible-2-rhui-rpms: [Errno 256] No more mirrors to try.
https://rhui4-1.microsoft.com/pulp/repos/content/dist/rhel/rhui/server/7/7Server/x86_64/ansible/2/os/repodata/repomd.xml: [Errno 12] Timeout on https://rhui4-1.microsoft.com/pulp/repos/content/dist/rhel/rhui/server/7/7Server/x86_64/ansible/2/os/repodata/repomd.xml: (28, 'Connection timed out after 30001 milliseconds')
https://rhui4-1.microsoft.com/pulp/repos/content/dist/rhel/rhui/server/7/7Server/x86_64/ansible/2/os/repodata/repomd.xml: [Errno 12] Timeout on https://rhui4-1.microsoft.com/pulp/repos/content/dist/rhel/rhui/server/7/7Server/x86_64/ansible/2/os/repodata/repomd.xml: (28, 'Connection timed out after 30001 milliseconds')
https://rhui4-1.microsoft.com/pulp/repos/content/dist/rhel/rhui/server/7/7Server/x86_64/ansible/2/os/repodata/repomd.xml: [Errno 12] Timeout on https://rhui4-1.microsoft.com/pulp/repos/content/dist/rhel/rhui/server/7/7Server/x86_64/ansible/2/os/repodata/repomd.xml: (28, 'Connection timed out after 30001 milliseconds')
https://rhui4-1.microsoft.com/pulp/repos/content/dist/rhel/rhui/server/7/7Server/x86_64/ansible/2/os/repodata/repomd.xml: [Errno 12] Timeout on https://rhui4-1.microsoft.com/pulp/repos/content/dist/rhel/rhui/server/7/7Server/x86_64/ansible/2/os/repodata/repomd.xml: (28, 'Connection timed out after 30001 milliseconds')
https://rhui4-1.microsoft.com/pulp/repos/content/dist/rhel/rhui/server/7/7Server/x86_64/ansible/2/os/repodata/repomd.xml: [Errno 12] Timeout on https://rhui4-1.microsoft.com/pulp/repos/content/dist/rhel/rhui/server/7/7Server/x86_64/ansible/2/os/repodata/repomd.xml: (28, 'Connection timed out after 30001 milliseconds')
预升级解决方案 2:允许 RHUI 连接
允许连接到 RHUI。 有关详细信息,请参阅 Linux RHUI 连接问题。
预降级症状 3:订阅管理器命令未运行
如果您在按用量付费(PayGo)镜像上运行包含 Red Hat 订阅管理器的 Leapp 升级,可能会收到以下错误消息:
[ERROR] Actor: scan_subscription_manager_info
Message:
Summary:
Details: Command ['subscription-manager', 'release'] failed with exit code 1.
Stderr: This system is not yet registered. Try 'subscription-manager register --help' for more information.
Hint: Please ensure you have a valid RHEL subscription and your network is up. If you are using proxy for Red Hat subscription-manager, please make sure it is specified inside the /etc/rhsm/rhsm.conf file. Or use the --no-rhsm option when running leapp, if you do not want to use subscription-manager for the in-place upgrade and you want to deliver all target repositories by yourself or using RHUI on public cloud.
预升级解决方案 3:绕过订阅管理器工具
在 Azure 上使用 PayGo 映像时,无法运行 subscription-manager 工具,因为系统旨在改用 RHUI。 在升级期间,您必须指定 --no-rhsm 标志以绕过 subscription-manager。
preupgrade 症状 4:Leapp 预升级未安装 RHEL 8 用户空间包(“execv() 失败:没有此类文件或目录”
如果运行 Leapp 预升级,可能会收到以下“无法安装 RHEL 8 用户空间包”错误消息:
Risk Factor: high
Title: Unable to install RHEL 8 userspace packages.
Summary: {"details": "DNF failed to install userspace packages, likely due to the proxy config
uration detected in a repository configuration file.", "stderr": "Failed to create directory /
var/lib/leapp/scratch/mounts/root_/system_overlay//sys/fs/selinux: Read-only file system
Failed to create directory /var/lib/leapp/scratch/mounts/root_/system_overlay//sys/fs/selinux:
Read-only file system
Host and machine ids are equal (35e06890bn8g56f798g8904356fsd5f8): refusing to link journals
execv() failed: No such file or directory
还可能会收到以下“无法获取有关 DNF 配置的数据”错误消息:
Risk Factor: high
Title: Cannot obtain data about the DNF configuration
Summary: {"stderr": "Failed to retrieve machine ID: No such file or directory\n", "stdout": ""}
Key: b41a40f4129e340f05c6b14d1a850b626c4185d1
预升级解决方案 4:安装 dnf 包
请确保 已安装 dnf 包,并且没有与该包关联的问题或损坏的文件:
sudo package-cleanup --problems
Package leapp-upgrade-el7toel8-deps-0.18.0-1.el7_9.noarch has missing requires of dnf >= ('0', '4', None)
sudo yum reinstall leapp\*
sudo rpm -Va dnf\* leapp\*
.M....... g /var/log/dnf.librepo.log
.M....... g /var/log/dnf.log
.M....... g /var/log/dnf.rpm.log
.M....... g /var/log/hawkey.log
升级前问题 5: /var/lib/leapp/el8userspace', '/bin/bash', '-c', 'su - -c update-ca-trust'] 执行失败,退出代码 1
如果运行 Leapp 预升级,可能会收到以下“执行组件target_userspace_creator意外终止”错误消息:
Factor: high error
Title: Actor target_userspace_creator unexpectedly terminated with exit code: 1
Summary: Traceback most recent call last: File '/usr/lib/python2.7/site-packages/leapp/repository/actor_definition.py',
line 74, in _do_run actor_instance.run*args, **kwargs File '/usr/lib/python2.7/site-packages/leapp/actors/__init__.py', line 289, in run
self.process*args File '/usr/share/leapp-repository/repositories/system_upgrade/common/actors/targetuserspacecreator/actor.py', line 58, in process userspacegen.perform File '/usr/lib/python2.7/site-packages/leapp/utils/deprecation.py', line 42, in process_wrapper return target_item*args, **kwargs File '/usr/share/leapp-repository/repositories/system_upgrade/common/actors/targetuserspacecreator/libraries/userspacegen.py',
line 1246, in perform _create_target_userspacecontext, indata, indata.packages, indata.files, target_repoids File '/usr/share/leapp-repository/repositories/system_upgrade/common/actors/targetuserspacecreator/libraries/userspacegen.py',
line 1108, in _create_target_userspace _prep_repository_accesscontext, target_path File '/usr/share/leapp-repository/repositories/system_upgrade/common/actors/targetuserspacecreator/libraries/userspacegen.py',
line 629, in _prep_repository_access run['chroot', target_userspace, '/bin/bash', '-c', 'su - -c update-ca-trust'] File '/usr/lib/python2.7/site-packages/leapp/libraries/stdlib/__init__.py', line 192, in run result=resultCalledProcessError: Command ['chroot', '/var/lib/leapp/el8userspace', '/bin/bash', '-c', 'su - -c update-ca-trust'] failed with exit code 1
预升级解决方案 5:重新安装 CA 证书并更新 CA 信任
导致命令失败的现有 ca-certificates 包 update-ca-trust 中出现了问题。 若要解决此问题,请重新安装 ca-certificates 包并运行以下命令 update-ca-trust :
sudo yum reinstall ca-certificates
sudo update-ca-trust
preupgrade 症状 6:FileNotFoundError:[Errno 2] 没有此类文件或目录:'/etc/leapp/repos.d/system_upgrade/common/files/rhui/azure-XX/content-XX.crt'
如果您尝试在具有工具版本leapp preupgrade的RHEL或SAP-HANA上运行SAPApps``leapp 8,或者在具有版本lapp-rhui-azure-sap-1.0.0-14.el8.noarch的基础 Red Hat 映像上运行,则会生成以下错误消息:
====> * target_userspace_creator
Initializes a directory to be populated as a minimal environment to run binaries from the target system.
Process Process-408:
Traceback (most recent call last):
File "/usr/lib64/python3.6/multiprocessing/process.py", line 258, in _bootstrap
self.run()
File "/usr/lib64/python3.6/multiprocessing/process.py", line 93, in run
self._target(*self._args, **self._kwargs)
File "/usr/lib/python3.6/site-packages/leapp/repository/actor_definition.py", line 74, in _do_run
actor_instance.run(*args, **kwargs)
File "/usr/lib/python3.6/site-packages/leapp/actors/__init__.py", line 289, in run
self.process(*args)
File "/etc/leapp/repos.d/system_upgrade/common/actors/targetuserspacecreator/actor.py", line 58, in process
userspacegen.perform()
File "/usr/lib/python3.6/site-packages/leapp/utils/deprecation.py", line 42, in process_wrapper
return target_item(*args, **kwargs)
File "/etc/leapp/repos.d/system_upgrade/common/actors/targetuserspacecreator/libraries/userspacegen.py", line 774, in perform
target_repoids = _gather_target_repositories(context, indata, prod_cert_path)
File "/etc/leapp/repos.d/system_upgrade/common/actors/targetuserspacecreator/libraries/userspacegen.py", line 714, in _gather_target_repositories
rhui.copy_rhui_data(context, indata.rhui_info.provider)
File "/etc/leapp/repos.d/system_upgrade/common/libraries/rhui.py", line 259, in copy_rhui_data
context.copy_to(os.path.join(data_dir, path_[0]), path_[1])
File "/etc/leapp/repos.d/system_upgrade/common/libraries/mounting.py", line 232, in copy_to
shutil.copy2(src, self.full_path(dst))
File "/usr/lib64/python3.6/shutil.py", line 263, in copy2
copyfile(src, dst, follow_symlinks=follow_symlinks)
File "/usr/lib64/python3.6/shutil.py", line 120, in copyfile
with open(src, 'rb') as fsrc:
FileNotFoundError: [Errno 2] No such file or directory: '/etc/leapp/repos.d/system_upgrade/common/files/rhui/azure-sap-ha/content-sap-ha.crt'
SAP-HA 映像生成:
FileNotFoundError: [Errno 2] No such file or directory:'/etc/leapp/repos.d/system_upgrade/common/files/rhui/azure-sap-ha/content-sap-ha.crt'
SAPApps 映像生成:
FileNotFoundError: [Errno 2] No such file or directory:'/etc/leapp/repos.d/system_upgrade/common/files/rhui/azure-sap-apps/content-sapapps.crt'
基础映像生成:
FileNotFoundError: [Errno 2] No such file or directory: '/etc/leapp/repos.d/system_upgrade/common/files/rhui/azure/content.crt'
预升级解决方案 6
此问题的解决方法是将 SAP 映像的版本从 leapp-rhui-azure-sap 降级到 leapp-rhui-azure-sap-1.0.0-10.el8.noarch,并将 Red Hat 基本映像的版本从 leapp-rhui-azure 降级到 leapp-rhui-azure-1.0.0-10.el8.noarch。
SAP 映像:
sudo dnf downgrade leapp-rhui-azure-sap
基础映像:
sudo dnf downgrade leapp-rhui-azure
preupgrade 症状 7:预升级失败并出现“找不到匹配项:util-linux dnf dnf-command(config-manager) kpatch-dnf”的错误,在 RHEL 8.10 基本镜像(非 SAP) 中。
从 RHEL 8.10 到 RHEL 9.x 基础映像(非 SAP)的就地升级在 leapp preupgrade 阶段失败。 在/var/log/leapp/leapp-report.txt中报告了以下错误:
====> Title: Unable to install RHEL 9 userspace packages.
Summary: {"details": "Command ['systemd-nspawn', '--register=no', '--quiet', '--keep-unit', '--capability=all', '-D', '/var/lib/leapp/scratch/mounts/root_/system_overlay', '--setenv=LEAPP_HOSTNAME=rhel810.internal.cloudapp.net', '--setenv=LEAPP_EXPERIMENTAL=0', '--setenv=LEAPP_UNSUPPORTED=0', '--setenv=LEAPP_NO_RHSM=1', '--setenv=LEAPP_NO_RHSM_FACTS=1', '--setenv=LEAPP_TARGET_PRODUCT_CHANNEL=ga', '--setenv=LEAPP_UPGRADE_PATH_TARGET_RELEASE=9.6', '--setenv=LEAPP_UPGRADE_PATH_FLAVOUR=default', '--setenv=LEAPP_IPU_IN_PROGRESS=8to9', '--setenv=LEAPP_EXECUTION_ID=143879fb-a55b-406f-8eca-2c257c3e3e08', '--setenv=LEAPP_COMMON_TOOLS=:/etc/leapp/repos.d/system_upgrade/common/tools:/etc/leapp/repos.d/system_upgrade/el8toel9/tools', '--setenv=LEAPP_COMMON_FILES=:/etc/leapp/repos.d/system_upgrade/common/files:/etc/leapp/repos.d/system_upgrade/el8toel9/files', 'dnf', 'install', '-y', '--setopt=module_platform_id=platform:el9', '--setopt=keepcache=1', '--releasever', '9.6', '--installroot', '/el9target', '--disablerepo', '*', '--enablerepo', 'rhui-microsoft-azure-rhel9', 'util-linux', 'dnf', 'rhui-azure-rhel9', 'dnf-command(config-manager)', 'kpatch-dnf', '--disableplugin', 'subscription-manager'] failed with exit code 1.", "stderr": "Host and machine ids are equal (32f9000d1b424a30bb3d02c4fd201983): refusing to link journals
Error: Unable to find a match: util-linux dnf dnf-command(config-manager) kpatch-dnf
"}
Key: 0e5d8451adfe372b923058fd09028cb5356e733d
原因
在预升级阶段,Leapp 安装 RHUI 客户端版本**(rhui-azure-rhel9-2.3-900)。** 此版本包含 不正确的存储库 ID,这可以防止 dnf 解析所需的 RHEL 9 包。
预升级解决方案 7:将 RHUI 客户端更新到最新版本
较新版本的 RHUI 客户端 (rhui-azure-rhel*-901 或更高版本) 包括 RHEL 8 到 RHEL 9 就地升级所需的正确存储库 ID。
在运行 leapp preupgrade之前,更新 RHEL 8 系统上的 RHUI 客户端包:
dnf update rhui-azure-rhel8
解决所有抑制物后,再次运行预降级,并确保所有问题都得到解决。
Leapp 升级常见问题
预升级报告显示没有错误或障碍因素,所有内容都标记为已被解决,请继续执行 Leapp 升级。 在此报告中,输出通常以绿色或黄色显示,指示可以安全地运行 Leapp 升级。
以下症状表示在 Leapp 升级过程中报告的一些常见错误。
升级症状 1:/var/lib/leapp/scratch 上没有足够的空间
如果运行 Leapp 升级,可能会收到以下“空间不足”错误消息:
2024-06-14 19:31:45.552155 [ERROR] Actor: dnf_dry_run
Message: Not enough space available on /var/lib/leapp/scratch: Needed at least 1224 MiB.
Summary:
Detail: The file system hosting the /var/lib/leapp/scratch directory does not contain enough free space to proceed all parts of the in-place upgrade. Note the calculated required free space is the minimum derived from upgrades of minimal systems and the actual needed free space could be higher.
Needed at least: 1224 MiB.
Suggested free space: 2224 MiB (or more).
升级解决方案 1:扩展文件系统
扩展装载的 /var/lib/leapp 文件系统。 通常,装载位于 /dev/mapper/rootvg-varlv* 上*。
通常,输出以绿色或黄色显示,指示可以安全地执行 Leapp 升级。
升级症状 2:openssl-libs-1:1.1.1k-12.el8_9.x86_64 与包 openssl11-libs-1:1.1.1k-7.el7.x86_64 中的文件冲突
来自以下源的库之间存在冲突:
- openssl11-libs 包来自企业 Linux 的额外包(EPEL)存储库
- Red Hat 提供的 RHEL 8 的 openssl 和 openssl-libs 包(就地升级需要)
在这种情况下,你会收到以下错误消息:
Error: Transaction test error:
file /usr/lib64/.libcrypto.so.1.1.1k.hmac from install of openssl-libs-1:1.1.1k-12.el8_9.x86_64 conflicts with file from package openssl11-libs-1:1.1.1k-7.el7.x86_64
file /usr/lib64/.libssl.so.1.1.1k.hmac from install of openssl-libs-1:1.1.1k-12.el8_9.x86_64 conflicts with file from package openssl11-libs-1:1.1.1k-7.el7.x86_64
file /usr/lib64/engines-1.1/afalg.so from install of openssl-libs-1:1.1.1k-12.el8_9.x86_64 conflicts with file from package openssl11-libs-1:1.1.1k-7.el7.x86_64
file /usr/lib64/engines-1.1/capi.so from install of openssl-libs-1:1.1.1k-12.el8_9.x86_64 conflicts with file from package openssl11-libs-1:1.1.1k-7.el7.x86_64
file /usr/lib64/engines-1.1/padlock.so from install of openssl-libs-1:1.1.1k-12.el8_9.x86_64 conflicts with file from package openssl11-libs-1:1.1.1k-7.el7.x86_64
file /usr/lib64/libcrypto.so.1.1.1k from install of openssl-libs-1:1.1.1k-12.el8_9.x86_64 conflicts with file from package openssl11-libs-1:1.1.1k-7.el7.x86_64
file /usr/lib64/libssl.so.1.1.1k from install of openssl-libs-1:1.1.1k-12.el8_9.x86_64 conflicts with file from package openssl11-libs-1:1.1.1k-7.el7.x86_64
Hint: If there was a problem reaching remote content (see stderr output) and proxy is configured in the YUM/DNF configuration file, the proxy configuration is likely causing this error. Make sure the proxy is properly configured in /etc/dnf/dnf.conf. It's also possible the proxy settings in the DNF configuration file are incompatible with the target system. A compatible configuration can be placed in /etc/leapp/files/dnf.conf which, if present, it will be used during some parts of the upgrade instead of original /etc/dnf/dnf.conf. In such case the configuration will also be applied to the target system. Note that /etc/dnf/dnf.conf needs to be still configured correctly for your current system to pass the early phases of the upgrade process.
升级解决方案 2:删除 openssl11-* 包
验证 是否为第三方供应商安装了 openssl11-* 包。 如果该包来自第三方供应商,请将其删除,如以下命令中所示。
备注
如果使用任何其他第三方包管理器,可能会生成此冲突错误消息。 在此示例中,冲突发生在 openssl11。
sudo yum list installed | grep -i openssl11
sudo yum remove openssl11 openssl11-libs
openssl11.x86_64 1:1.1.1k-7.el7 @epel
openssl11-libs.x86_64 1:1.1.1k-7.el7 @epel
===============================================================================
Package Arch Version Repository Size
================================================================================
Removing:
openssl11 x86_64 1:1.1.1k-7.el7 @epel 1.0 M
openssl11-libs x86_64 1:1.1.1k-7.el7 @epel 3.6 M
Removing for dependencies:
nodejs x86_64 1:16.20.2-1.el7 @epel 290 k
nodejs-libs x86_64 1:16.20.2-1.el7 @epel 50 M
警告
如果来自 EPEL 存储库的其他包(如 nodejs 和 nodejs-libs )由于上一个输出中显示的依赖项问题而被删除,请备份相关的配置文件,并在就地升级后手动重新安装相同的包。
升级症状 3:安装包 ansible-2.9.27-1.el7ae.noarch 和 ansible-test-2.9.27-1.el7ae.noarch 有问题
如果运行 Leapp 升级,可能会收到以下“DNF 执行失败并出现非零退出代码”错误消息:
Risk Factor: high (error)
Title: DNF execution failed with non zero exit code.
Summary: {"hint": "If there was a problem reaching remote content (see stderr output) and proxy is configured in the YUM/DNF configuration file, the proxy configuration is likely causing this error. Make sure the proxy is properly configured in /etc/dnf/dnf.conf. It's also possible the proxy settings in the DNF configuration file are incompatible with the target system. A compatible configuration can be placed in /etc/leapp/files/dnf.conf which, if present, it will be used during some parts of the upgrade instead of original /etc/dnf/dnf.conf. In such case the configuration will also be applied to the target system. Note that /etc/dnf/dnf.conf needs to be still configured correctly for your current system to pass the early phases of the upgrade process.", "STDERR": "No matches found for the following disable plugin patterns: subscription-manager\nFailed loading plugin \"dnf_rhui_plugin\": No module named 'requests'\nWarning: Package marked by Leapp to upgrade not found in repositories metadata: gpg-pubkey leapp-upgrade-el7toel8 leapp python2-leapp\nTransaction check: \n\n Problem: problem with installed package ansible-2.9.27-1.el7ae.noarch\n - cannot install the best update candidate for package ansible-2.9.27-1.el7ae.noarch\n - problem with installed package ansible-test-2.9.27-1.el7ae.noarch\n - cannot install the best update candidate for package ansible-test-2.9.27-1.el7ae.noarch\n - package ansible-test-2.9.0-2.el8.noarch from ansible-2-for-rhel-8-x86_64-rhui-rpms requires ansible = 2.9.0-2.el8, but none of the providers can be installed\n - package ansible-test-2.9.1-1.el8.noarch from ansible-2-for-rhel-8-x86_64-rhui-rpms requires ansible = 2.9.1-1.el8, but none of the providers can be installed\n - package ansible-test-2.9.2-1.el8ae.noarch from ansible-2-for-rhel-8-x86_64-rhui-rpms requires ansible = 2.9.2-1.el8ae, but none of the providers can be installed\n - package ansible-test-2.9.4-1.el8ae.noarch from ansible-2-for-rhel-8-x86_64-rhui-rpms requires ansible = 2.9.4-1.el8ae, but none of the providers can be installed\n - package ansible-test-2.9.5-1.el8ae.noarch from ansible-2-for-rhel-8-x86_64-rhui-rpms requires ansible = 2.9.5-1.el8ae, but none of the providers can be installed\n - package ansible-test-2.9.6-1.el8ae.noarch from ansible-2-for-rhel-8-x86_64-rhui-rpms requires ansible = 2.9.6-1.el8ae, but none of the providers can be installed\n - package ansible-test-2.9.7-1.el8ae.noarch from ansible-2-for-rhel-8-x86_64-rhui-rpms requires ansible = 2.9.7-1.el8ae, but none of the providers can be installed\n - package ansible-test-2.9.9-1.el8ae.noarch from ansible-2-for-rhel-8-x86_64-rhui-rpms requires ansible = 2.9.9-1.el8ae, but none of the providers can be installed\n - package ansible-test-2.9.10-1.el8ae.noarch from ansible-2-for-rhel-8-x86_64-rhui-rpms requires ansible = 2.9.10-1.el8ae, but none of the providers can be installed\n - package ansible-test-2.9.11-1.el8ae.noarch from ansible-2-for-rhel-8-x86_64-rhui-rpms requires ansible = 2.9.11-1.el8ae, but none of the providers can be installed\n - package ansible-test-2.9.13-1.el8ae.noarch from ansible-2-for-rhel-8-x86_64-rhui-rpms requires ansible = 2.9.13-1.el8ae, but none of the providers can be installed\n - package ansible-test-2.9.14-1.el8ae.noarch from ansible-2-for-rhel-8-x86_64-rhui-rpms requires ansible = 2.9.14-1.el8ae, but none of the providers can be installed\n - package ansible-test-2.9.15-1.el8ae.noarch from ansible-2-for-rhel-8-x86_64-rhui-rpms requires ansible = 2.9.15-1.el8ae, but none of the providers can be installed\n - package ansible-test-2.9.16-1.el8ae.noarch from ansible-2-for-rhel-8-x86_64-rhui-rpms requires ansible = 2.9.16-1.el8ae, but none of the providers can be installed\n - package ansible-test-2.9.17-1.el8ae.noarch from ansible-2-for-rhel-8-x86_64-rhui-rpms requires ansible = 2.9.17-1.el8ae, but none of the providers can be installed\n - package ansible-test-2.9.18-1.el8ae.noarch from ansible-2-for-rhel-8-x86_64-rhui-rpms requires ansible = 2.9.18-1.el8ae, but none of the providers can be installed\n - package ansible-test-2.9.19-1.el8ae.noarch from ansible-2-for-rhel-8-x86_64-rhui-rpms requires ansible = 2.9.19-1.el8ae, but none of the providers can be installed\n - package ansible-test-2.9.20-1.el8ae.noarch from ansible-2-for-rhel-8-x86_64-rhui-rpms requires ansible = 2.9.20-1.el8ae, but none of the providers can be installed\n - package ansible-test-2.9.21-1.el8ae.noarch from ansible-2-for-rhel-8-x86_64-rhui-rpms requires ansible = 2.9.21-1.el8ae, but none of the providers can be installed\n - package ansible-test-2.9.22-1.el8ae.noarch from ansible-2-for-rhel-8-x86_64-rhui-rpms requires ansible = 2.9.22-1.el8ae, but none of the providers can be installed\n - package ansible-test-2.9.23-1.el8ae.noarch from ansible-2-for-rhel-8-x86_64-rhui-rpms requires ansible = 2.9.23-1.el8ae, but none of the providers can be installed\n - package ansible-test-2.9.24-1.el8ae.noarch from ansible-2-for-rhel-8-x86_64-rhui-rpms requires ansible = 2.9.24-1.el8ae, but none of the providers can be installed\n - package ansible-test-2.9.25-1.el8ae.noarch from ansible-2-for-rhel-8-x86_64-rhui-rpms requires ansible = 2.9.25-1.el8ae, but none of the providers can be installed\n - package ansible-test-2.9.26-1.el8ae.noarch from ansible-2-for-rhel-8-x86_64-rhui-rpms requires ansible = 2.9.26-1.el8ae, but none of the providers can be installed\n - package ansible-test-2.12.2-3.1.el8.x86_64 from rhel-8-for-x86_64-appstream-rhui-rpms requires ansible-core = 2.12.2-3.1.el8, but none of the providers can be installed\n - package ansible-test-2.12.2-4.el8_6.x86_64 from rhel-8-for-x86_64-appstream-rhui-rpms requires ansible-core = 2.12.2-4.el8_6, but none of the providers can be installed\n - package ansible-test-2.13.3-1.el8.x86_64 from rhel-8-for-x86_64-appstream-rhui-rpms requires ansible-core = 2.13.3-1.el8, but none of the providers can be installed\n - package ansible-test-2.13.3-2.el8_7.x86_64 from rhel-8-for-x86_64-appstream-rhui-rpms requires ansible-core = 2.13.3-2.el8_7, but none of the providers can be installed\n - package ansible-test-2.14.2-3.el8.x86_64 from rhel-8-for-x86_64-appstream-rhui-rpms requires ansible-core = 2.14.2-3.el8, but none of the providers can be installed\n - package ansible-test-2.14.2-4.el8_8.x86_64 from rhel-8-for-x86_64-appstream-rhui-rpms requires ansible-core = 2.14.2-4.el8_8, but none of the providers can be installed\n - package ansible-test-2.15.3-1.el8.x86_64 from rhel-8-for-x86_64-appstream-rhui-rpms requires ansible-core = 2.15.3-1.el8, but none of the providers can be installed\n - package ansible-test-2.16.3-2.el8.x86_64 from rhel-8-for-x86_64-appstream-rhui-rpms requires ansible-core = 2.16.3-2.el8, but none of the providers can be installed\n - cannot install both ansible-2.9.27-1.el8ae.noarch from ansible-2-for-rhel-8-x86_64-rhui-rpms and ansible-2.9.0-2.el8.noarch from ansible-2-for-rhel-8-x86_64-rhui-rpms\n - cannot install both ansible-2.9.27-1.el8ae.noarch from ansible-2-for-rhel-8-x86_64-rhui-rpms and ansible-2.9.1-1.el8.noarch from ansible-2-for-rhel-8-x86_64-rhui-rpms\n - cannot install both ansible-2.9.27-1.el8ae.noarch from ansible-2-for-rhel-8-x86_64-rhui-rpms and ansible-2.9.2-1.el8ae.noarch from ansible-2-for-rhel-8-x86_64-rhui-rpms\n - cannot install both ansible-2.9.27-1.el8ae.noarch from ansible-2-for-rhel-8-x86_64-rhui-rpms and ansible-2.9.4-1.el8ae.noarch from ansible-2-for-rhel-8-x86_64-rhui-rpms\n - cannot install both ansible-2.9.27-1.el8ae.noarch from ansible-2-for-rhel-8-x86_64-rhui-rpms and ansible-2.9.5-1.el8ae.noarch from ansible-2-for-rhel-8-x86_64-rhui-rpms\n - cannot install both ansible-2.9.27-1.el8ae.noarch from ansible-2-for-rhel-8-x86_64-rhui-rpms and ansible-2.9.6-1.el8ae.noarch from ansible-2-for-rhel-8-x86_64-rhui-rpms\n - cannot install both ansible-2.9.27-1.el8ae.noarch from ansible-2-for-rhel-8-x86_64-rhui-rpms and ansible-2.9.7-1.el8ae.noarch from ansible-2-for-rhel-8-x86_64-rhui-rpms\n - cannot install both ansible-2.9.27-1.el8ae.noarch from ansible-2-for-rhel-8-x86_64-rhui-rpms and ansible-2.9.9-1.el8ae.noarch from ansible-2-for-rhel-8-x86_64-rhui-rpms\n - cannot install both ansible-2.9.27-1.el8ae.noarch from ansible-2-for-rhel-8-x86_64-rhui-rpms and ansible-2.9.10-1.el8ae.noarch from ansible-2-for-rhel-8-x86_64-rhui-rpms\n - cannot install both ansible-2.9.27-1.el8ae.noarch from ansible-2-for-rhel-8-x86_64-rhui-rpms and ansible-2.9.11-1.el8ae.noarch from ansible-2-for-rhel-8-x86_64-rhui-rpms\n - cannot install both ansible-2.9.27-1.el8ae.noarch from ansible-2-for-rhel-8-x86_64-rhui-rpms and ansible-2.9.13-1.el8ae.noarch from ansible-2-for-rhel-8-x86_64-rhui-rpms\n - cannot install both ansible-2.9.27-1.el8ae.noarch from ansible-2-for-rhel-8-x86_64-rhui-rpms and ansible-2.9.14-1.el8ae.noarch from ansible-2-for-rhel-8-x86_64-rhui-rpms\n - cannot install both ansible-2.9.27-1.el8ae.noarch from ansible-2-for-rhel-8-x86_64-rhui-rpms and ansible-2.9.15-1.el8ae.noarch from ansible-2-for-rhel-8-x86_64-rhui-rpms\n - cannot install both ansible-2.9.27-1.el8ae.noarch from ansible-2-for-rhel-8-x86_64-rhui-rpms and ansible-2.9.16-1.el8ae.noarch from ansible-2-for-rhel-8-x86_64-rhui-rpms\n - cannot install both ansible-2.9.27-1.el8ae.noarch from ansible-2-for-rhel-8-x86_64-rhui-rpms and ansible-2.9.17-1.el8ae.noarch from ansible-2-for-rhel-8-x86_64-rhui-rpms\n - cannot install both ansible-2.9.27-1.el8ae.noarch from ansible-2-for-rhel-8-x86_64-rhui-rpms and ansible-2.9.18-1.el8ae.noarch from ansible-2-for-rhel-8-x86_64-rhui-rpms\n - cannot install both ansible-2.9.27-1.el8ae.noarch from ansible-2-for-rhel-8-x86_64-rhui-rpms and ansible-2.9.19-1.el8ae.noarch from ansible-2-for-rhel-8-x86_64-rhui-rpms\n - cannot install both ansible-2.9.27-1.el8ae.noarch from ansible-2-for-rhel-8-x86_64-rhui-rpms and ansible-2.9.20-1.el8ae.noarch from ansible-2-for-rhel-8-x86_64-rhui-rpms\n - cannot install both ansible-2.9.27-1.el8ae.noarch from ansible-2-for-rhel-8-x86_64-rhui-rpms and ansible-2.9.21-1.el8ae.noarch from ansible-2-for-rhel-8-x86_64-rhui-rpms\n - cannot install both ansible-2.9.27-1.el8ae.noarch from ansible-2-for-rhel-8-x86_64-rhui-rpms and ansible-2.9.22-1.el8ae.noarch from ansible-2-for-rhel-8-x86_64-rhui-rpms\n - cannot install both ansible-2.9.27-1.el8ae.noarch from ansible-2-for-rhel-8-x86_64-rhui-rpms and ansible-2.9.23-1.el8ae.noarch from ansible-2-for-rhel-8-x86_64-rhui-rpms\n - cannot install both ansible-2.9.27-1.el8ae.noarch from ansible-2-for-rhel-8-x86_64-rhui-rpms and ansible-2.9.24-1.el8ae.noarch from ansible-2-for-rhel-8-x86_64-rhui-rpms\n - cannot install both ansible-2.9.27-1.el8ae.noarch from ansible-2-for-rhel-8-x86_64-rhui-rpms and ansible-2.9.25-1.el8ae.noarch from ansible-2-for-rhel-8-x86_64-rhui-rpms\n - cannot install both ansible-2.9.27-1.el8ae.noarch from ansible-2-for-rhel-8-x86_64-rhui-rpms and ansible-2.9.26-1.el8ae.noarch from ansible-2-for-rhel-8-x86_64-rhui-rpms\n - package ansible-core-2.12.2-3.1.el8.x86_64 from rhel-8-for-x86_64-appstream-rhui-rpms conflicts with ansible < 2.10.0 provided by ansible-2.9.27-1.el8ae.noarch from ansible-2-for-rhel-8-x86_64-rhui-rpms\n - package ansible-core-2.12.2-4.el8_6.x86_64 from rhel-8-for-x86_64-appstream-rhui-rpms conflicts with ansible < 2.10.0 provided by ansible-2.9.27-1.el8ae.noarch from ansible-2-for-rhel-8-x86_64-rhui-rpms\n - package ansible-core-2.13.3-1.el8.x86_64 from rhel-8-for-x86_64-appstream-rhui-rpms conflicts with ansible < 2.10.0 provided by ansible-2.9.27-1.el8ae.noarch from ansible-2-for-rhel-8-x86_64-rhui-rpms\n - package ansible-core-2.13.3-2.el8_7.x86_64 from rhel-8-for-x86_64-appstream-rhui-rpms conflicts with ansible < 2.10.0 provided by ansible-2.9.27-1.el8ae.noarch from ansible-2-for-rhel-8-x86_64-rhui-rpms\n - package ansible-core-2.14.2-3.el8.x86_64 from rhel-8-for-x86_64-appstream-rhui-rpms conflicts with ansible < 2.10.0 provided by ansible-2.9.27-1.el8ae.noarch from ansible-2-for-rhel-8-x86_64-rhui-rpms\n - package ansible-core-2.14.2-4.el8_8.x86_64 from rhel-8-for-x86_64-appstream-rhui-rpms conflicts with ansible < 2.10.0 provided by ansible-2.9.27-1.el8ae.noarch from ansible-2-for-rhel-8-x86_64-rhui-rpms\n - package ansible-core-2.15.3-1.el8.x86_64 from rhel-8-for-x86_64-appstream-rhui-rpms conflicts with ansible < 2.10.0 provided by ansible-2.9.27-1.el8ae.noarch from ansible-2-for-rhel-8-x86_64-rhui-rpms\n - package ansible-core-2.16.3-2.el8.x86_64 from rhel-8-for-x86_64-appstream-rhui-rpms conflicts with ansible < 2.10.0 provided by ansible-2.9.27-1.el8ae.noarch from ansible-2-for-rhel-8-x86_64-rhui-rpms\n - ansible-test-2.9.27-1.el7ae.noarch from @System does not belong to a distupgrade repository\n - ansible-2.9.27-1.el7ae.noarch from @System does not belong to a distupgrade repository\n", "STDOUT": "Last metadata expiration check: 0:02:18 ago on Fri Jun 14 18:01:34 2024.\n"}
升级解决方案 3:删除 Ansible 包
对于具有任何 Ansible 产品的系统,不支持就地升级。 有关详细信息,请参阅 Upgrading_from_rhel_7_to_rhel_8。 若要删除 Ansible 包,请运行以下命令:
sudo yum remove ansible ansible-test
升级症状 4:ImportError: /lib64/libk5crypto.so.3:未定义的符号
libk5crypto* 需要的 OpenSSL 库中*存在不匹配或缺失的符号,如以下输出所示:
[ 1895.402427] upgrade[557]: ImportError: /lib64/libk5crypto.so.3: undefined symbol: EVP_KDF_ctrl, version OPENSSL_1_1_1b
升级解决方案 4:删除或重命名冲突中的文件,并更新动态链接器
/etc/ld.so.conf.d/openssl-1.1.1d.conf* 中的*自定义 OpenSSL 库路径会导致问题:
sudo cat /etc/ld.so.conf.d/openssl-1.1.1d.conf
/usr/local/ssl/lib
若要解决冲突,请删除或重命名此文件。 然后,通过运行以下命令 ldconfig更新动态链接器运行时绑定:
sudo mv /etc/ld.so.conf.d/openssl-1.1.1d.conf /tmp
sudo ldconfig
该 ldconfig 命令更新符号链接并重新生成缓存,以确保新安装的库已正确链接,可供其他组使用。
此作可确保系统使用正确版本的 OpenSSL 和 libk5crypto 库。 此外,此操作应该修复与未定义符号EVP_KDF_ctrl相关的 ImportError。
升级症状 5:Leapp 在升级过程中无法装载设备
如果运行 Leapp 升级,可能会收到以下设备装载错误消息:
[ 4.509104] upgrade[569]: Mounting /usr with -o defaults,ro
[ 4.590197] upgrade[596]: Spawning container sysroot on /sysroot.
[ 4.608522] upgrade[596]: Press ^] three times within 1s to kill container.
[ 4.909441] upgrade[599]: mount: can't find UUID=c044351a-93a0-45f5-afs3-d361181215b8
[ 44.830831] upgrade[638]: ==> Processing phase `InitRamStart`
[ 44.843736] upgrade[638]: ====> * remove_upgrade_boot_entry
[ 44.863656] upgrade[638]: Remove boot entry for Leapp provided initramfs.
[ 47.734944] upgrade[1155]: Process Process-230:
[ 47.745684] upgrade[1155]: Traceback (most recent call last):
[ 47.756230] upgrade[1155]: File "/usr/lib64/python2.7/multiprocessing/process.py", line 258, in _bootstrap
[ 47.764584] upgrade[1155]: self.run()
升级解决方案 5:还原 VM 并删除 UUID
-
可以从快照或备份中还原虚拟机(VM)。
-
检查 VM 上是否存在错误消息中的 UUID。 如果 UUID 存在,请将其注释掉或将其从 /etc/fstab 文件中删除。
sudo blkidsudo cat /etc/fstab -
再次运行 Leapp 升级命令。
升级症状 6:未能在 RHEL 7.9 上的 /sys/fs/cgroup 上装载 n/a
如果运行 Leapp 升级,可能会收到以下“无法装载”错误消息:
[ 4.815758] upgrade[599]: Failed to mount n/a on /sys/fs/cgroup (MS_RDONLY|MS_NOSUID|MS_NODEV|MS_NOEXEC|MS_REMOUNT|MS_STRICTATIME "mode=755"): Invalid argument
[ 4.812413] kernel: cgroup2: Unknown parameter 'mode'
装载失败的原因是 RHEL 7 不支持控制组版本 2(cgroup v2)。 有关详情,请参阅 [IPU 7>8] Leapp 因 cgroup v2 不受支持而失败。
升级解决方案 6:删除systemd.unified_cgroup_hierarchy参数
- 从快照或备份恢复 VM。
- 在运行 Leapp 升级之前,请验证参数
systemd.unified_cgroup_hierarchy=1位于 /proc/cmdline 还是 /etc/default/grub 中。 - 如果该参数位于其中一个文件中,请从文件中删除该参数,然后再次运行 Leapp 升级过程。
升级症状 7:重新启动后,Leapp 升级不会继续,VM 会改为启动到 RHEL 8.10
如果运行从 RHEL 8.10 升级到 9.4 或 9.5 的 Leapp 升级,升级过程在所需的重新启动后可能不会继续。 相反,VM 会启动回 RHEL 8.10,而无需加载特殊的升级 initramfs。
以下设置 /etc/default/grub 可能会导致此问题:
GRUB_DEFAULT=0
由于 GRUB_DEFAULT=0 强制系统始终启动 GRUB 中的第一个菜单项,因此会跳过 Leapp 升级条目并继续启动到现有的 RHEL 8.10 环境中。
升级解决方案 7:修改 GRUB 以使用保存的条目
-
将
GRUB_DEFAULT=0更改为GRUB_DEFAULT=saved:备注
在此示例中,
GRUB_DEFAULT被设置为0,但在您的环境中,可能是1或其他数字。 请确保在sed命令中相应替换它。sudo sed -i 's/^GRUB_DEFAULT=0/GRUB_DEFAULT=saved/' /etc/default/grub -
重新生成 GRUB 配置:
-
第 1 代:
sudo grub2-mkconfig -o /boot/grub2/grub.cfg -
第 2 代:
grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg
-
-
使用串行控制台重新启动 VM:
sudo reboot重新启动后,如果正确应用了修复程序,VM 将启动到 Leapp 升级 initramfs 中,应该会在串口控制台中看到类似于以下行的输出:
[ OK ] Reached target Remote File Systems. Starting dracut pre-mount hook... [ OK ] Finished dracut pre-mount hook. Starting File System Check on /dev/mapper/rootvg-rootlv... [ OK ] Finished File System Check on /dev/mapper/rootvg-rootlv. Mounting /sysroot... [ OK ] Mounted /sysroot. [ OK ] Reached target Initrd Root File System. [ OK ] Reached target System Upgrade. Starting dracut pre-pivot and cleanup hook... Starting System Upgrade... [ 6.507621] upgrade[677]: starting upgrade hook [ 6.531079] upgrade[677]: /bin/upgrade: line 20: /sysroot/var/tmp/system-upgrade.state: No such file or directory [ 6.543603] upgrade[677]: Storage initialisation: Attempt 0 of 11. Wait 15 seconds. [ 6.608365] dracut-pre-pivot[703]: 6.605850 | /etc/multipath.conf does not exist, blocklisting all devices. [ 6.620246] dracut-pre-pivot[703]: 6.608599 | You can run "/sbin/mpathconf --enable" to create [ 6.630208] dracut-pre-pivot[703]: 6.608921 | /etc/multipath.conf. See man mpathconf(8) for more details [ OK ] Finished dracut pre-pivot and cleanup hook. [ 21.555427] upgrade[714]: 5 logical volume(s) in volume group "rootvg" now active [ 21.581296] upgrade[677]: Mounting /usr with -o defaults,ro此输出指示 Leapp 升级过程已成功继续。 完成后,VM 应启动到 RHEL 9。x.
重要
如果 Leapp 升级仍然失败,但没有明显的原因(例如从版本 7.9 升级到版本 8.10 或从版本 8.10 升级到版本 9.5 时),请不要升级到最新版本。 而是尝试通过指定 --target x.y 标志升级到中间版本(例如从版本 7.9 升级到版本 8.8 或版本 8.10 到版本 9.4)。 中间升级成功后,可以尝试升级到最新版本。