10.3. 已知问题
从 RHEL 7 升级到 RHEL 8 时可能会遇到的已知问题。
- 在进行原位升级时,如果 Network Manager 被禁用或没有安装,则 network teaming 功能无法正常工作。
-
如果您使用 HTTP 代理,则必须将 Red Hat Subscription Manager 配置为使用代理服务器,或在执行
subscription-manager
命令时使用--proxy <hostname>
选项 。否则,subscription-manager
命令的执行会失败。如果您使用--proxy
选项而不是配置更改,升级过程会失败,因为Leapp
无法检测到代理。要防止这个问题发生,请手动编辑rhsm.conf
文件,如 How to configure HTTP Proxy for Red Hat Subscription Management 所述。(BZ#1689294)
-
如果您的 RHEL 7 系统使用由红帽提供但在 RHEL 8 中不可用的设备驱动程序,
Leapp
将会限制升级。但是,如果 RHEL 7 系统使用了第三方设备驱动程序,而Leapp
在/etc/leapp/files/device_driver_deprecation_data.json
文件中没有数据,则Leapp
不会检测这样的驱动程序并进行升级。然后,该系统可能会在升级后无法引导。
如果在
/etc/nsswitch.conf
文件中使用了winbind
和wins
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
要临时解决这个问题,请配置系统以便在更新的过程中只使用本地供应商的
user
,groups
, 和hosts
数据库。-
打开系统
/etc/nsswitch.conf
配置文件并搜索包含winbind
或者wins
字符串的条目。 -
如果您找到这样的条目,请创建一个
/etc/nsswitch.conf
的备份。 -
编辑
/etc/nsswitch.conf
并从包含它们的条目中删除winbind
或者wins
。 - 执行原位升级。
升级后,根据您的系统配置要求,将
winbind
和wins
字符串添加到/etc/nsswitch.conf
中的条目中。(BZ#1410154)
-
打开系统
Leapp
实用程序不会在升级过程中更改自定义验证配置。如果您使用已弃用的authconfig
工具在 RHEL 7 系统中配置身份验证,则 RHEL 8 的身份验证可能无法正常工作。要确保您的自定义配置在 RHEL 8 系统中正常工作,请使用authselect
程序重新配置您的 RHEL 8 系统。重要在原位升级过程中,删除已弃用的
pam_krb5
或pam_pkcs11
可插拔验证模块 (PAM)。因此,如果 RHEL 7 系统上的 PAM 配置包含pam_krb5
或pam_pkcs11
模块,如果这些模块具有required
或requisite
控制值,则如果执行原位升级,则您可能会被锁在系统之外。要临时解决这个问题,请在开始升级前将您的 RHEL 7 系统配置为不使用pam_krb5
或者pam_pkcs11
。
如果系统上安装的第三方软件包(不是红帽签名的)的名称与红帽提供的软件包名称相同,则原位升级会失败。要临时解决这个问题,请在升级前选择以下选项之一:
- 删除第三方软件包
- 使用红帽提供的软件包替换第三方软件包
为了安全起见,已从 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 加密类型: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 之间更新。在这些系统上,执行以下步骤:-
设置
LEAPP_NO_NETWORK_RENAMING=1
环境变量,来防止Leapp
工具错误地保留原始 RHEL 7 NIC 名称。 - 执行原位升级。
验证您的网络是否正常工作。如果需要,请手动更新网络配置。
(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',gnoring 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 ...
如果出现这个问题,请完成以下步骤:
- 卸载与系统分区无关且在升级过程中不需要的文件系统。
-
注释掉
/etc/fstab
文件中卸载的文件系统的条目,以防止它们在升级过程中被挂载。 升级后恢复原始文件系统配置。
-
如果您的系统中没有
/etc/sysconfig/kernel
系统配置文件,升级会失败,从而导致系统中断。要防止这个问题,请使用预期的配置手动创建该文件。如需更多信息 ,请参阅验证引导装载程序。(RHEL-22306) 如果
/etc/fstab
文件中定义的任何挂载的文件系统没有设置共享
传播标志,则升级可能会失败。要防止这个问题,请重新挂载这些文件系统将其设置为共享:# mount -o remount --make-shared <mountpoint>
使用每个文件系统的挂载点替换 mountpoint。
如需更多信息,请参阅 DNF 事务检查 中的 Leapp "Can not load RPM 文件 "。(RHEL-23449)
-
如果为升级过程设置了有限的资源,则升级可能会失败。例如,升级过程
可以访问
由进程写入的最大打开文件描述符和最大文件大小
(如果已设置)。要防止这些问题,请在升级前增加或减少这些限制。如需更多信息,请参阅 为什么 leapp preupgrade fail with sqlite3.OperationalError: unable to open database file traceback error? and Ensure that enough diskspace in /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
在 IBM Z 机器上带有没有网卡的系统(如 IBM Z 机器上 RoCE )可能会因为 NIC 名称升级后遇到连接丢失的情况。要防止这个问题,请在升级前完成以下步骤:
在内核引导参数中添加
net.ifnames=0
:# grubby --update-kernel=ALL --args 'net.ifnames=0'
在 IBM Z 系统中,输入以下命令使更改有效:
# zipl
重启您的系统。
-
如果您的 RHEL 7 系统使用由红帽提供但在 RHEL 8 中不可用的设备驱动程序,必须在原位升级前卸载驱动程序。但是,当某些设备驱动程序(如
mptcl
驱动程序)被其他服务使用时,可能会自动重新载入驱动程序。要解决这个问题,请参阅 因为无法卸载的 mptctl 模块导致 IPU 被禁止。(RHEL-15894) -
如果您使用 RHUI 升级,则预升级报告中的
/usr/share/leapp-repository/repositories/system_upgrade/common/files/rhui/
目录中的文件会错误地报告为预升级报告中的自定义文件。除非手动修改了这些文件,否则您可以在报告中忽略这些文件的警告,否则原位升级将不受影响。(RHEL-40115)