10.3. 已知问题


从 RHEL 7 升级到 RHEL 8 时可能会遇到的已知问题。

  • 当网络管理器被禁用或未安装时,当执行原位升级时,NIC team 目前无法正常工作。
  • 如果您的 RHEL 7 系统使用由红帽提供但在 RHEL 8 中不可用的设备驱动程序,Leapp 将会限制升级。但是,如果 RHEL 7 系统使用了第三方设备驱动程序,而 Leapp/etc/leapp/files/device_driver_deprecation_data.json 文件中没有数据,则 Leapp 不会检测这样的驱动程序并进行升级。然后,该系统可能会在升级后无法引导。
  • 如果在 /etc/nsswitch.conf 文件中使用了 winbindwins Samba 模块,则不能执行原位升级。升级事务失败并显示以下出错信息,Lapp 会阻止升级:

    upgrade[469]: STDERR:
    upgrade[469]: Error in PREIN scriptlet in rpm package unbound-libs
    upgrade[469]: Error: Transaction failed
    upgrade[469]: Container el8userspace failed with error code 1.
    unbound-libs has a PREIN failure
    Copy to Clipboard Toggle word wrap

    要临时解决这个问题,请配置系统以便在更新的过程中只使用本地供应商的 user, groups, 和 hosts 数据库。

    1. 打开系统 /etc/nsswitch.conf 配置文件并搜索包含 winbind 或者 wins 字符串的条目。
    2. 如果您找到这样的条目,请创建一个 /etc/nsswitch.conf 的备份。
    3. 编辑 /etc/nsswitch.conf 并从包含它们的条目中删除 winbind 或者 wins
    4. 执行原位升级。
    5. 升级后,根据您的系统配置要求,将 winbindwins 字符串添加到 /etc/nsswitch.conf 中的条目中。

      (BZ#1410154)

  • Leapp 实用程序不会在升级过程中更改自定义验证配置。如果您使用已弃用的 authconfig 工具在 RHEL 7 系统中配置身份验证,则 RHEL 8 的身份验证可能无法正常工作。要确保您的自定义配置在 RHEL 8 系统中正常工作,请使用 authselect 程序重新配置您的 RHEL 8 系统。

    重要

    在原位升级过程中,删除已弃用的 pam_krb5pam_pkcs11 可插拔验证模块 (PAM)。因此,如果 RHEL 7 系统上的 PAM 配置包含 pam_krb5pam_pkcs11 模块,如果这些模块具有 requiredrequisite 控制值,则如果执行原位升级,则您可能会被锁在系统之外。要临时解决这个问题,请在开始升级前将您的 RHEL 7 系统配置为不使用 pam_krb5 或者 pam_pkcs11

  • 如果系统上安装的第三方软件包(不是红帽签名的)的名称与红帽提供的软件包名称相同,则原位升级会失败。要临时解决这个问题,请在升级前选择以下选项之一:

    1. 删除第三方软件包
    2. 使用红帽提供的软件包替换第三方软件包
  • 为了安全起见,已从 RHEL 8 中删除了对 single-DES (DES)和 triple-DES (3DES)加密类型的支持。RHEL 7 Identity Management(IdM)仍支持 3DES 加密。
    将 IdM 客户端从 RHEL 7 升级到 RHEL 8 或将整个 IdM 环境从 RHEL 7 迁移到 RHEL 8 是可能的,因为两个 RHEL 版本都默认首选更强的 AES 加密类型:

    Expand
    IdM 的版本默认加密类型其他支持的加密类型

    RHEL 7

    aes256-cts
    aes128-cts

    camellia256-cts
    camellia128-cts
    des3-hmac
    arcfour-hmac

    RHEL 8

    aes256-cts
    aes128-cts

    aes256-sha2
    aes128-sha2
    camellia256-cts
    camellia128-cts
    arcfour-hmac [a]

    [a] RHEL 8 中默认弃用并禁用了 RC4 加密,因为它被视为不如较新的 AES-128 和 AES-256 加密类型安全。有关启用对与传统活动目录环境兼容的 RC4 支持的更多信息,请参阅 确保 AD 和 RHEL 中对通用加密类型的支持

    如果您手动配置了一个非 IdM Kerberos 发行中心(KDC)、任何服务或任何用户为使用 DES 或 3DES 加密的用户,您可能会在升级到 RHEL 8 中最新 Kerberos 软件包后遇到服务中断,例如:

    • Kerberos 验证错误
    • unknown enctype 加密错误
    • 带有 DES 加密数据库主密钥 (K/M) 的 KDC 无法启动

    红帽建议不要在您的环境中使用 DES 或者 3DES 加密。有关重新加密 Kerberos 主体以使用更强大的加密类型的更多信息,请参阅 MIT Kerberos 文档中的 退出 DES

  • 在带有独立磁盘的软件冗余阵列(RAID)的系统上,原位升级可能会失败。(RHEL-3279)
  • 禁用 GRUB 引导装载程序规格的系统(如使用 Puppet 的系统)无法为较新的内核创建新的 initramfs。要临时解决这个问题,请从引导装载程序条目中手动删除软件包和旧内核,如 第 6 章:执行升级后的任务 中所述。(BZ#1955099)
  • IBM Z 构架中没有 Relax-and-Recover (ReaR) 程序。因此,IBM Z 系统无法完全由 OpenSCAP 套件修复,且可能无法与安全基准完全兼容。(BZ#1958939)
  • 在原位升级过程中,Leapp 工具通常会保留 RHEL 7 和 RHEL 8 之间的网络接口控制器(NIC)名称。但是,在某些系统上,如带有网络绑定的系统,NIC 名称需要在 RHEL 7 和 RHEL 8 之间更新。在这些系统上,执行以下步骤:

    1. 设置 LEAPP_NO_NETWORK_RENAMING=1 环境变量,来防止 Leapp 工具错误地保留原始 RHEL 7 NIC 名称。
    2. 执行原位升级。
    3. 验证您的网络是否正常工作。如果需要,请手动更新网络配置。

      (BZ#1919382)

  • 原位升级后,如果系统满足以下条件,则 SSH 密钥将不再自动生成:

    • 系统在云上。
    • cloud-init 软件包已安装。
    • ssh_genkeytypes 配置在 /etc/cloud/cloud.cfg 文件中被设置为 ~,这是默认设置。

      如果原始密钥已删除,则此问题防止使用 SSH 连接系统。有关防止此问题的更多信息,请参阅红帽知识库解决方案 将模板升级到 RHEL 8.7 或 9 后,无法 SSH 到新的虚拟机。(BZ#2210012)

  • 在硬件级别 13 上创建的且使用 UEFI 引导的 VMware 虚拟机在升级过程中可能会遇到问题,因为 NVRAM 文件太小了。如需更多信息,请参阅红帽知识库解决方案 VMWare:在执行 efibootmgr 或 mokutil 命令添加条目时,得到 "No space left on device"。(RHEL-3362)
  • 如果您使用带有 ISO 镜像的 RHUI 升级,则升级可能会失败。您可以通过不将 --iso 选项与升级一起使用来临时解决这个问题,或者查看红帽知识库解决方案 使用 ISO 离线 Leapp 升级失败并显示 'Failed to synchronize cache for repo 'rhul-microsoft-azure-rhel8', ignoring this repo。(RHEL-3296)
  • 预升级过程可能会失败,并显示以下错误消息:

    MountError:failed to create mount target directory …

    如果出现这个问题,请导出 LEAPP_OVL_IMG_FS_EXT4=1 环境变量。如需更多信息,请参阅红帽知识库解决方案 Leapp 可能失败,并显示 MountError (OverlayFS + XFS ftype=1)。(RHEL-3330)

  • 如果挂载了太多文件系统,则预升级过程可能会失败,并显示以下错误消息:

    OperationalError: unable to open database file
    Cannot create XFS filesystem in ...
    Copy to Clipboard Toggle word wrap

    如果出现这个问题,请完成以下步骤:

    1. 卸载与系统分区无关且在升级过程中不需要的文件系统。
    2. 注释掉 /etc/fstab 文件中卸载的文件系统的条目,以防止它们在升级过程中被挂载。
    3. 升级后恢复原始文件系统配置。

      (RHEL-3320)

  • 如果您的系统上没有 /etc/sysconfig/kernel 系统配置文件,升级会失败,导致系统故障。要防止这个问题,请使用预期的配置手动创建该文件。如需更多信息,请参阅 验证引导装载程序。(RHEL-22306)
  • 如果 /etc/fstab 文件中定义的任何挂载的文件系统没有设置 shared 传播标志,则升级可能会失败。要防止这个问题,请重新挂载这些文件系统,来将其设置为 shared :

    # mount -o remount --make-shared <mountpoint>
    Copy to Clipboard Toggle word wrap

    使用每个文件系统的挂载点替换 mountpoint

    如需更多信息,请参阅红帽知识库解决方案 在 DNF 事务检查过程中,Leapp 报错"Can not load RPM file"。(RHEL-23449)

  • 如果为升级过程设置了有限的资源,则升级可能会失败。例如,如果设置了,升级进程可能会达到 打开的文件描述符的最大数进程及其子进程写的文件的最大大小 属性。要防止这些问题,请在升级之前增加或减少这些限制。如需更多信息,请参阅红帽知识库解决方案 为什么 leapp 预升级失败并显示 sqlite3.OperationalError: unable to open database file traceback 错误? ,并确保 /var/lib/leapp/scratch/diskimages/root_boot 中有足够的磁盘空间,至少需要 XXX mib。(RHEL-16881, RHEL-26459)
  • 如果系统上安装了 jbcs-httpd24-brotli RPM,例如,如果您的系统使用 JBoss Core Services Web 服务器,则升级可能会失败。要防止这个问题,请在升级前删除软件包。另外,如果您无法在升级前删除软件包,请运行以下命令,以确保 brotli 软件包在升级过程被安装:

    # echo brotli >> /etc/leapp/transaction/to_install
    Copy to Clipboard Toggle word wrap

    (RHEL-22542)

  • 网卡没在 PCI 总线上的系统,如 IBM Z 机器上的 RoCE ,可能会因为 NIC 名称的更改,在升级后遇到连接丢失的情况。要防止这个问题,请在升级前完成以下步骤:

    1. 在内核引导参数中添加 net.ifnames=0

      # grubby --update-kernel=ALL --args 'net.ifnames=0'
      Copy to Clipboard Toggle word wrap
    2. 在 IBM Z 系统上,输入以下命令使更改有效:

      # zipl
      Copy to Clipboard Toggle word wrap
    3. 重启您的系统。

      (RHEL-22371)

  • 如果您的 RHEL 7 系统使用红帽提供的但在 RHEL 8 中没有的设备驱动程序,在原位升级前必须卸载该驱动程序。但是,当某些设备驱动程序(如 mptcl 驱动程序)被其他服务使用时,驱动程序可能会被自动重新载入。有关解决这个问题的更多信息,请参阅红帽知识库解决方案 由于无法卸载的 mptctl 模块,IPU 被禁止。(RHEL-15894)
  • 如果您使用 RHUI 进行升级,则 /usr/share/leapp-repository/repositories/system_upgrade/common/files/rhui/ 目录中的文件在预升级报告中被错误地报告为自定义文件。除非手动修改这些文件,否则您可以忽略报告中有关这些文件的警告,原位升级将不会受到影响。(RHEL-40115)
  • 升级后,活动目录身份验证可能会有问题。如需更多信息,请参阅红帽知识库解决方案 从 RHEL 7 到 RHEL 8 的 LEAPP 升级后,活动目录身份验证无法正常工作
  • RHEL 8 上的 logrotate 配置与 RHEL 7 上的不同。因此,如果您自定义了 logrotate 配置,则在升级后 logrotate 可能会失败。有关解决这个问题的更多信息,请参阅红帽知识库解决方案 在从 RHEL 7 原位升级到 RHEL 8 后,logrotate 异常退出
  • 如果没有存储的的任何文件系统在 /etc/fstab 文件中使用存储定义了,则升级可能会失败。对于使用 SysVinit 的旧系统,此类设置是典型的,但对于带有 systemd 的系统是无效的。要防止这个问题,请从 /etc/stab 文件中删除这些条目。以下挂载点通常用于没有存储的文件系统:

    • /dev
    • /dev/pts
    • /dev/shm
    • /proc
    • /run
    • /sys
    • /sys/firmware/efi/efivars
    • /sys/fs/bpf
    • /sys/fs/cgroup
    • /sys/fs/pstore
    • /sys/fs/smackfs
    • /sys/kernel/security

      (RHEL-56838)

  • 如果您使用 HTTP 代理,则必须将 Red Hat Subscription Manager 配置为使用代理服务器,或在执行 subscription-manager 命令时使用 --proxy <hostname> 选项 。否则,subscription-manager 命令的执行会失败。如果您使用 --proxy 选项而不是配置更改,升级过程会失败,因为 Leapp 无法检测到代理。要防止这个问题发生,请手动编辑 rhsm.conf 文件。如需更多信息,请参阅红帽知识库解决方案 如何为红帽订阅管理配置 HTTP 代理。(BZ#1689294)
  • 对于需要代理来访问 RHEL 8 内容的系统,您通常需要在 /etc/dnf/dnf.conf 配置文件中配置通过 DNF 使用代理。如果当前的 DNF 配置与目标系统上的 DNF 版本不兼容,请在 /etc/leapp/files/dnf.conf 配置文件中指定有效的目标配置。如需更多信息,请参阅红帽知识库解决方案 Leapp 如何使用代理?
  • 当满足所有以下条件时,升级可能会失败,并显示 MountError 消息:

    • /etc/fstab 中定义的挂载点包含下划线字符。
    • 如果下划线字符被替换为正斜杠,则 /etc/stab 中定义的另一个挂载点有相同的名称。

      例如,在 /etc/fstab 中定义 /var/tmp/var_tmp 挂载点会导致升级失败。

      要防止这个问题,请卸载包含下划线字符的挂载点,并在升级前在 /etc/fstab 文件中注释掉挂载点。您可以在升级后恢复配置。

      (RHEL-62737)

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat