从 RHEL 7 升级至 RHEL 8
把 Red Hat Enterprise Linux 7 原位(in-place)升级到 Red Hat Enterprise Linux 8
摘要
对红帽文档提供反馈
我们感谢您对我们文档的反馈。让我们了解如何改进它。
通过 Jira 提交反馈(需要帐户)
- 登录到 Jira 网站。
- 单击顶部导航栏中的 Create。
- 在 Summary 字段中输入描述性标题。
- 在 Description 字段中输入您对改进的建议。包括文档相关部分的链接。
- 点对话框底部的 Create。
主要迁移术语
尽管以下与迁移相关的术语在软件业中常用,但这里的定义特定于 Red Hat Enterprise Linux (RHEL)。
Update(更新)
更新(有时称为软件补丁)是您正在运行的应用程序、操作系统或软件的一个补充。软件更新用于解决存在的问题或漏洞,以便提供更好的使用体验。在 RHEL 中,更新与次版本相关,例如,从 RHEL 8.1 更新到 8.2。
Upgrade(升级)
升级是使用一个新的版本替换当前运行的应用程序、操作系统或软件的版本。通常情况下,您需要首先根据红帽的指导对数据进行备份。升级 RHEL 时,有两个选项:
- 原位升级(In-place upgrade):在原位升级过程中,您可以在不先删除旧版本的情况下将旧版本替换为新版本。安装的应用程序和实用程序,以及相关的配置和首选项都会融合到新版本中。
- 全新安装(Clean install):干净安装会删除之前安装的操作系统、系统数据、配置和应用程序的所有数据,并安装最新版本的操作系统。如果您不需要之前的数据或应用程序,或者您要部署的新项目不依赖于以前的构建,则全新安装是一个理想的选择。
操作系统转换
转换是将操作系统从不同的 Linux 发行版转换为 Red Hat Enterprise Linux。通常情况下,您需要首先根据红帽的指导对数据进行备份。
Migration(迁移)
通常,迁移表示对平台(软件或硬件)进行更改。从 Windows 变为 Linux 是一种迁移.用户从使用一个笔记本电脑换为使用另外一个笔记本电脑,公司从使用一个服务器换为使用另一台服务器,都是迁移。但是,大多数迁移都涉及到升级,因此有时此术语可以互换使用。
- 迁移到 RHEL:将现有操作系统转换到 RHEL
- 跨 RHEL 迁移:从一个 RHEL 升级到另一个版本
第 1 章 支持的升级路径
原位升级会将系统上的 RHEL 7 操作系统(OS)替换为 RHEL 8 版本。
目前,可以执行从 RHEL 7 原位升级到以下目标 RHEL 8 次版本:
| 系统配置 | 源操作系统版本 | 目标操作系统版本 | 
|---|---|---|
| RHEL | RHEL 7.9 | RHEL 8.10 | 
| 带有 SAP HANA 的 RHEL | 
有关支持的升级路径的更多信息,请参阅 支持的 Red Hat Enterprise Linux 的原位升级路径 和 原位升级支持政策。
第 2 章 升级过程概述
从 RHEL 7 到 RHEL 8 的原位升级过程总结如下:
- 计划升级 - 查看系统要求和限制。确定您的系统是否适合原位升级,或者您是否应该执行 RHEL 8 的全新安装。 
- 准备升级 - 在开始升级过程前,请完成所需的准备步骤,包括创建 RHEL 7 系统的备份。 
- 运行并查看预升级报告 - 运行预升级工具来生成一个报告,该报告总结了在升级之前必须解决的潜在问题。根据发现的问题的严重性和影响以及解决问题所需的工作量,请继续执行以下结果之一: - 修复发现的问题并应用推荐的解决方案。重新运行预升级工具,以验证是否所有严重问题都已解决。您可能需要运行预升级报告,并在系统准备好升级之前多次解决发现的问题。
- 切换到全新安装的 RHEL 8 ,而不是继续原位升级。
 
- 执行原位升级 - 执行到 RHEL 8 的升级,并验证升级是否已正确完成。如果升级遇到无法解决的问题,请执行到 RHEL 7 备份的回滚。 
- 执行升级后步骤 - 执行所需的升级后步骤,以确保 RHEL 8 系统已正确建立。 
第 3 章 计划升级
原位升级(in-place upgrade)是把系统升级到下一个主要 RHEL 版本的推荐并支持的方法。
在升级到 RHEL 8 前请考虑以下几点:
- 操作系统 — 在以下情况下使用 - Leapp程序升级操作系统:- 64 位 Intel、IBM POWER 8 (little endian)和 64 位 IBM Z 架构上,以及 SAP HANA 上和 64 位 Intel 架构上 RHEL 7.9 的服务器变种已安装。 
- 满足 RHEL 8 的最低硬件要求。
- 您可以访问最新的 RHEL 7.9 和目标操作系统(OS)版本(如 RHEL 8.10)内容。如需更多信息,请参阅 为升级准备 RHEL 7 系统。
 
- 
					应用程序 - 您可以使用 Leapp迁移安装在系统上的应用程序。然而,在某些情况下,您必须创建 custom actors,它用来在升级过程中指定Leapp要执行的操作,例如: 重新配置应用程序或安装特定的硬件驱动程序。如需更多信息,请参阅处理自定义应用程序和第三方应用程序的迁移。请注意,红帽不支持自定义参与者。
- 安全性 - 您应该在升级前评估这个方面,并在升级过程完成后采取其他步骤。请特别考虑以下几点: - 在升级前,定义您系统需要满足的安全标准,并了解 RHEL 8 中的安全变化。
- 
							在升级过程中,Leapp会将 SELinux 的模式设置为 permissive。
- Leapp无法完全自动升级联邦信息处理标准(FIPS)模式的系统。如果您需要升级在 FIPS 模式运行的 RHEL 7 系统,您必须:重要- 为确保所有加密密钥都符合 FIPS 140-2 标准,请在 FIPS 模式下启动新安装,而不是对已部署的系统执行原位升级。只有在您公司的安全策略允许这个替代升级过程,且您可以确保在升级的系统上重新生成和重新评估所有加密密钥时,才执行以下步骤。。 - 在 RHEL 7 中 禁用 FIPS 模式 (红帽知识库)。
- 
									使用 Leapp升级系统。您必须遵循与其它原位升级一样的预升级、升级和升级后的说明。
- 在 RHEL 8 中启用 FIPS 模式。详情请参阅 RHEL 8 安全强化文档中的将系统切换到 FIPS 模式。
- 在您的系统中重新生成加密密钥。如需更多信息,请参阅 附录 C, RHEL 8 中加密密钥的位置。
 
- 升级完成后,重新评估并重新应用您的安全策略。有关应用升级过程中禁用的安全策略或 RHEL 8 中新引进的安全策略的详情,请参阅应用安全策略。
 
- 存储和文件系统 - 总是在升级前备份您的系统。例如,您可以使用 Relax-and-Recover (ReaR)工具 (红帽知识库)、LVM 快照、RAID 拆分 或虚拟机快照。 注意- 文件系统格式没有改变。因此,文件系统有与最初创建时相同的限制。 
- 高可用性 - 如果您使用高可用性附加组件,请按照 对 RHEL 高可用性或弹性存储集群应用软件升级的推荐的实践 知识库文章。
- 停机时间 — 升级过程可能会需要几分钟到几小时。
- Satellite - 客户端 - 如果您通过 Satellite 管理主机,那么您可以使用 Satellite Web UI 同时将多个主机从 RHEL 7 升级到 RHEL 8。如需更多信息,请参阅 将主机升级到 Red Hat Enterprise Linux 的下一个主版本。
- 服务器和 Capsule - 您可以从 Satellite 6.11 开始升级 Satellite 服务器和 Capsule。如需更多信息,请参阅 使用 Leapp 将 Satellite 或 Capsule 原位升级到 Red Hat Enterprise Linux 8。
 
- SAP HANA - 如果您正在使用 SAP HANA,请参阅知识库文章 如何将 SAP 环境从 RHEL 7 原位升级到 RHEL 8。请注意,使用 SAP HANA 的 RHEL 的升级路径可能会有所不同。
- RHEL for Real Time - 支持对实时系统的升级。
- Red Hat OpenStack Platform 中的 Real Time for Network Functions Virtualization (NFV) - 支持对实时系统的升级。
- Red Hat Software Collections (RHSCLs) - RHSCLs 在原位升级过程中并没有被完全迁移。RHEL 8 软件包通常会自动替换 RHSCL 软件包,但必须手动迁移和配置自定义配置和数据。例如,如果您已从 RHSCL 安装了数据库,则应在升级前转储所有数据,以防止在 RHSCL 软件包删除过程中丢失数据,然后在系统升级后根据需要恢复数据。请注意,在升级 Red Hat Satellite 服务器时,项目所需的 RHSCL 软件包会自动迁移。
- Red Hat JBoss Enterprise Application Platform (EAP) - JBoss EAP 不支持升级到 RHEL 9 。升级后,您必须在系统上手动安装和配置 JBoss EAP。如需更多信息,请参阅红帽知识库解决方案 使用 leapp 工具对 Jboss EAP 和 websphere 服务器以及 Linux 进行原位迁移 。
- 公有云 - 仅支持在 Amazon Web Services (AWS)、Microsoft Azure 和 Google Cloud Platform 上使用 Red Hat Update Infrastructure (RHUI) 的按需付费(PAYG)实例的原位升级。原位升级还支持在所有使用 Red Hat Subscription Manager (RHSM)进行 RHEL 订阅的公有云上的 Bring Your Own Subscription 实例。
- 
					语言 - 无论语言配置如何,所有 Leapp报告、日志和其他生成的文档均为英语。
- 引导装载程序 - 在 RHEL 7 或 RHEL 8 中无法将引导装载程序从 BIOS 切换到 UEFI。如果您的 RHEL 7 系统使用 BIOS,而您希望 RHEL 8 系统使用 UEFI,请执行全新的 RHEL 8 安装,而不是原位升级。如需更多信息,请参阅红帽知识库解决方案 是否可在预安装的 Red Hat Enterprise Linux 机器上将 BIOS 引导切换为 UEFI 引导?
- 已知的限制 - 目前已知的重要的 - Leapp限制包括:- 目前,对整个磁盘或者分区进行加密,或对文件系统加密还不能用于计划进行原位升级的系统中。
- 不支持对使用以太网或 Infiniband 的基于网络的多路径和网络存储的升级。这包括使用 FCoE 的 SAN,以及从使用 FC 的 SAN 引导。请注意,支持使用 FC 的 SAN。
- 当前不支持在使用 Red Hat Update Infrastructure 而不是 RHEL 订阅的 RHSM 的其余公有云上按需 PAYG 实例的原位升级。
- 安装了任何 Ansible 产品,包括 Ansible Tower 的系统不支持原位升级。要在 RHEL 8 上使用 RHEL 7 Ansible Tower 安装,请参阅红帽知识库解决方案 如何将 Ansible Automation Platform 安装从一个环境迁移到另一个环境?
 
请参阅 已知问题。
您可以使用 Red Hat Insights 确定您注册到 Insights 的哪些系统位于 RHEL 8 的升级路径中。要做到这一点,请进入到 Insights 中相应的 顾问建议,在 Actions 下拉菜单下启用建议,并检查 Affected systems 标题下的列表。请注意: Advisor 推荐只会考虑 RHEL 7 次要版本,它不会执行系统升级前评估。另请参阅 Advisor-service 建议概述。
第 4 章 准备升级
要防止升级后出现问题,并确保您的系统已准备好升级到 RHEL 的下一个主要版本,请在升级前完成所有必要的准备步骤。
您必须在所有系统上执行 为升级准备 RHEL 7 系统 中所描述的准备步骤。另外,在注册到 Satellite 服务器的系统上,还必须执行 为升级准备 Satellite 注册系统 中描述的准备步骤。
4.1. 为升级准备 RHEL 7 系统
				这个流程描述了在使用 Leapp 工具执行原位升级到 RHEL 8 前必需执行的步骤。
			
如果您在升级过程中不计划使用 Red Hat Subscription Manager,请参阅在没有 Red Hat Subscription Manager 的情况下升级到 RHEL 8。
先决条件
- 系统满足规划升级中列出的条件。
- 如果您之前从 RHEL 6 升级到了 RHEL 7,则您已完成了所有需要的手动升级后步骤。这包括在您 RHEL 7 机器上手动迁移到 GRUB 引导装载程序。如需更多信息,请参阅 从 GRUB Legacy 升级到 GRUB。
流程
- 可选:查看 使用 Leapp 执行 RHEL 升级的最佳实践和建议 知识库文章中的最佳实践。
- 使用 Red Hat Subscription Manager 确保您的系统已被成功注册到 Red Hat Content Delivery Network (CDN)或 Red Hat Satellite。
- 如果您的系统已注册到 Satellite 服务器,请完成 为升级准备 Satellite 注册系统 中的步骤,以确保您的系统满足升级要求。 重要- 如果您的系统已注册到 Satellite 服务器,则您必须为升级完成 为升级准备一个注册了 Satellite 的系统 中的步骤,然后才能继续此流程中的步骤,以防止问题的发生。 
- 
						可选:卸载升级不需要的非系统操作系统文件系统,例如,仅包含与系统本身不相关的数据文件的文件系统,并从 /etc/fstab文件中注释掉它们。这可减少升级过程所需的时间,并防止与自定义或第三方参与者在升级过程中未正确迁移的第三方应用程序相关的潜在问题。
- 使用 subscription-manager 验证系统是否已订阅: - 如果您的系统使用启用了 Simple Content Access (SCA)的帐户注册了,请验证 - Content Access Mode is set to Simple Content Access消息是否出现:- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 如果您的系统使用禁用了 SCA 的帐户注册了,请验证是否已附加了 Red Hat Linux Server 订阅,产品名称是否为 - Server,其状态是否为- Subscribed:- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
 
- 确定启用了适当的软件仓库。以下命令列出 64 位 Intel 架构的软件仓库 ; 有关其他架构请参阅 RHEL 7 软件仓库。 - 启用 Base 软件仓库: - subscription-manager repos --enable rhel-7-server-rpms - # subscription-manager repos --enable rhel-7-server-rpms- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 启用提供 - Leapp及其依赖软件包的 Extras 软件仓库:- subscription-manager repos --enable rhel-7-server-extras-rpms - # subscription-manager repos --enable rhel-7-server-extras-rpms- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 注意- 另外,您还可以启用 Optional (也称为 CodeReady Linux Builder)或 Supplementary 存储库。有关存储库 ID 的更多信息,请参阅 RHEL 7 软件仓库中的 Optional 和 Supplementary 软件仓库 列表。有关这些软件仓库的内容的更多信息,请参阅 CodeReady Linux Builder 存储库 和 Supplementary 存储库。 
 
- 设置 Red Hat Subscription Manager ,以使用最新的 RHEL 7 内容: - subscription-manager release --unset - # subscription-manager release --unset- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 可选:要使用自定义软件仓库,请参阅 配置自定义存储库 知识库文章。
- 如果您使用 - yum-plugin-versionlock插件把软件包锁定到特定版本,请运行以下命令来清除锁:- yum versionlock clear - # yum versionlock clear- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 如需更多信息,请参阅红帽知识库解决方案 如何限制 yum ,以便将软件包安装或升级到一个固定的特定软件包版本? 
- 如果您要在公有云上使用 Red Hat Update Infrastructure (RHUI) 升级,请启用所需的 RHUI 软件仓库并安装所需的 RHUI 软件包,以确保您的系统已准备好升级。 - 对于 AWS: - yum-config-manager --enable rhui-client-config-server-7 yum-config-manager --enable rhel-7-server-rhui-extras-rpms yum -y install rh-amazon-rhui-client leapp-rhui-aws - # yum-config-manager --enable rhui-client-config-server-7 # yum-config-manager --enable rhel-7-server-rhui-extras-rpms # yum -y install rh-amazon-rhui-client leapp-rhui-aws- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 对于 Microsoft Azure: - yum-config-manager --enable rhui-microsoft-azure-rhel7 yum -y install rhui-azure-rhel7 yum-config-manager --enable rhui-rhel-7-server-rhui-extras-rpms yum -y install leapp-rhui-azure - # yum-config-manager --enable rhui-microsoft-azure-rhel7 # yum -y install rhui-azure-rhel7 # yum-config-manager --enable rhui-rhel-7-server-rhui-extras-rpms # yum -y install leapp-rhui-azure- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 注意- 如果您将 Azure 虚拟机 (VM) 锁定到一个次发行版本,请删除版本锁定。如需更多信息,请参阅将 RHEL 7.x 虚拟机切回到非 EUS。 
- 对于 Google Cloud Platform,请遵循 Google Cloud Platform (GCP) 知识库文章。
 
- 如果您在 Docker 中管理容器,请通过 Podman 使用合适的容器镜像重新创建这些容器,然后附加任何使用的卷。如需更多信息,请参阅红帽知识库解决方案 如何在从 Red Hat Enterprise Linux 7 迁移到 Red Hat Enterprise Linux 8 之前将 Docker 容器迁移到 Podman?
- 安装 - Leapp:- yum install leapp-upgrade - # yum install leapp-upgrade- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 请注意,您目前需要 - leapp软件包的版本 0.17.0 或更高版本和- leapp-repository软件包的版本 0.20.0 或更高版本,其包含- leapp-upgrade-el7toel8RPM 软件包。注意- 如果您的系统无法访问互联网,请从红帽客户门户网站下载以下软件包 : - 
									leapp
- 
									Leapp-deps
- 
									python2-leapp
- 
									leapp-upgrade-el7toel8
- 
									leapp-upgrade-el7toel8-deps如需更多信息,请参阅红帽知识库解决方案 如何在离线系统上安装 leapp 软件包,以进行 RHEL 7.9 到 RHEL 8.X 的升级?
 
- 
									
- 将所有软件包更新到最新的 RHEL 7 版本,并重启: - yum update reboot - # yum update # reboot- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 
						leapp-upgrade-el7toel8软件包的最新版本包含所有所需的数据文件。如果您使用旧版本替换了这些数据文件,请删除/etc/leapp/files目录中的所有 JSON 文件,并重新安装leapp-upgrade-el7toel8软件包,以确保您的数据文件是最新的。
- 
						可选:查看、修复,然后删除 rpmnew和rpmsave文件。如需更多信息,请参阅红帽知识库解决方案 是什么 rpmnew 和 rpmsave 文件?
- 临时禁用防病毒软件以防止升级失败。
- 确保任何配置管理系统都不会干扰原位升级过程: - 
								如果您使用客户端-服务器架构的配置管理系统(如 Puppet、Salt 或 Chef ),请在运行 leapp preupgrade命令前禁用系统。在升级完成前,请不要启用配置管理系统,以防止升级过程中出现问题。
- 如果您使用无代理架构的配置管理系统(如 Ansible ),在原位升级过程中不要执行配置和部署文件(如 Ansible playbook),如 执行从 RHEL 7 到 RHEL 8 的升级 中所述。 - 红帽不支持使用配置管理系统进行预升级和升级过程的自动化。如需更多信息,请参阅 使用配置管理系统在 Red Hat Enterprise Linux 上自动化部分 Leapp 预升级和升级过程。 
 
- 
								如果您使用客户端-服务器架构的配置管理系统(如 Puppet、Salt 或 Chef ),请在运行 
- 
						请确定您的系统没有使用多于一个的、名称基于内核使用的前缀(eth)的网络接口卡(NIC)。有关在原位升级到 RHEL 8 前如何迁移到另一个命名方案的说明,请参阅红帽知识库解决方案 当在 RHEL 7 上使用内核 NIC 时,如何执行到 RHEL 8 的原位升级。
- 
						如果您要使用 ISO 镜像升级,请验证 ISO 镜像是否包含目标操作系统版本,如 RHEL 8.8,是否被保存到一个持久本地挂载点,以确保 Leapp工具可以在升级过程中访问镜像。
- 确定您有一个完整的系统备份或虚拟机快照。请确定您可以按照您的环境中的标准灾难恢复步骤,把系统恢复到升级前的状态。您可以使用以下备份选项: - 使用 Relax-and-Recover (ReaR)工具创建系统的一个完整备份。如需更多信息,请参阅 ReaR 文档 和红帽知识库解决方案 什么是 Relax 和 Recover (ReaR),以及如何使用它进行灾难恢复?
- 使用 LVM 快照 或 RAID 拆分 创建您系统的快照。如果升级虚拟机,您可以创建整个虚拟机的快照。您还可以使用 Boom 工具管理快照和回滚引导条目。如需更多信息,请参阅红帽知识库解决方案 什么是 BOOM 以及如何安装它? 和 使用快照管理系统升级。 注意- 因为 LVM 快照不创建系统的完整备份,所以您可能无法在某些升级失败后恢复您的系统。因此,使用 ReaR 工具创建完整备份是安全的。 
 
4.2. 为升级准备注册了 Satellite 的系统
此流程描述了为升级到 RHEL 8 准备已注册到 Satellite 的系统所需的步骤。
如果您计划升级 Satellite 系统本身,请按照 使用 Leapp 将 Satellite 或 Capsule 升级到 Red Hat Enterprise Linux 8 In-Place 中所述的流程操作。
Satellite 系统上的用户必须完成此流程和 为升级准备 RHEL 7 系统 中所描述的步骤。
先决条件
- 您有对 Satellite 服务器的管理特权。
流程
- 验证 Satellite 是否是完全支持或维护支持的版本。如需更多信息,请参阅 Red Hat Satellite 产品生命周期。
- 将带有 RHEL 8 存储库的订阅清单导入到 Satellite 服务器。如需更多信息,请参阅 Red Hat Satellite 特定版本(例如 6.12 版本)的管理内容指南中的管理红帽订阅一章。
- 使用 RHEL 7.9 和目标操作系统版本(如 RHEL 8.10)的最新更新在 Satellite 服务器上启用并同步所有需要的 RHEL 7 和 RHEL 8 存储库。所需的软件仓库必须在内容视图中提供,并在关联的激活码中启用。 注意- 对于 RHEL 8 存储库,启用每个存储库的目标操作系统版本,例如 8.10。如果您只启用了存储库的 RHEL 8 版本,则原位升级被禁止。 - 例如,对于没有延长更新支持(EUS)订阅的 Intel 构架,至少启用以下软件仓库: - Red Hat Enterprise Linux 7 Server (RPMs) - rhel-7-server-rpms - x86_64 7Server 
- Red Hat Enterprise Linux 7 Server - Extras (RPMs) - rhel-7-server-extras-rpms - x86_64 
- Red Hat Enterprise Linux 8 for x86_64 - AppStream (RPMs) - rhel-8-for-x86_64-appstream-rpms - x86_64 <target_os_version> 
- Red Hat Enterprise Linux 8 for x86_64 - BaseOS (RPMs) - rhel-8-for-x86_64-baseos-rpms - x86_64 <target_os_version> - 将 target_os_version 替换为目标操作系统版本,如 8.10。 - 有关其他构架,请参阅 RHEL 7 软件仓库 和 RHEL 8 软件仓库。 - 如需更多信息,请参阅 Red Hat Satellite 特定版本(例如 版本 6.12)的 管理内容指南 中的 导入内容 一章。 
 
- 将内容主机附加到包含所需的 RHEL 7 和 RHEL 8 软件仓库的内容视图。 - 如需更多信息,请参阅 Red Hat Satellite 特定版本(例如 6.12 版本)的 管理内容指南 中的 管理内容视图 一章。 
验证
- 验证正确的 RHEL 7 和 RHEL 8 存储库是否已添加到 Satellite 服务器上正确的内容视图中。 - 在 Satellite Web UI 中,导航到 Content > Lifecycle > Content Views,然后点击内容视图的名称。
- 点 Repositories 选项卡,并验证存储库是否正确出现。 注意- 您还可以使用以下命令验证存储库是否已添加到内容视图中: - hammer repository list --search 'content_label ~ rhel-7' --content-view <content_view_name> --organization <organization> --lifecycle-environment <lifecycle_environment> hammer repository list --search 'content_label ~ rhel-8' --content-view <content_view_name> --organization <organization> --lifecycle-environment <lifecycle_environment> - # hammer repository list --search 'content_label ~ rhel-7' --content-view <content_view_name> --organization <organization> --lifecycle-environment <lifecycle_environment> # hammer repository list --search 'content_label ~ rhel-8' --content-view <content_view_name> --organization <organization> --lifecycle-environment <lifecycle_environment>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 将 <content_view_name> 替换为内容视图的名称,将 <organization> 替换为机构,将 <lifecycle_environement> 替换为生命周期环境的名称。 
 
- 验证与内容视图关联的激活码中是否启用了正确的 RHEL 8 存储库: - 在 Satellite Web UI 中,导航到 Content > Lifecycle > Activation Keys,然后点击激活码的名称。
- 
								单击 Repository Sets 选项卡,验证所需存储库的状态是否为 Enabled。
 
- 验证所有期望的 RHEL 7 存储库是否已在主机上启用。例如: - subscription-manager repos --list-enabled | grep "^Repo ID" - # subscription-manager repos --list-enabled | grep "^Repo ID" Repo ID: rhel-7-server-extras-rpms Repo ID: rhel-7-server-rpm- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
第 5 章 查看升级前报告
			要评估系统的可升级性,请使用 leapp preupgrade 命令启动预升级过程。在这个阶段中,Leapp 工具收集有关系统的数据,评估可升级性,并生成一个预升级报告。预升级报告总结了潜在的问题,并建议推荐的解决方案。本次报告还帮助您决定升级是否可行。
		
				预升级评估不会修改系统配置,但它消耗 /var/lib/leapp 目录中不可忽略的空间。在大多数情况下,预升级评估最多需要 4 GB 空间,但实际大小取决于您的系统配置。如果在托管的文件系统上没有足够的空间,预升级报告可能无法显示分析的完整结果。要防止问题,请确定您的系统在 /var/lib/leapp 目录中有足够的空间,或者将目录移到一个专用的分区,以便空间消耗不会影响系统的其他部分。
			
始终查看整个预升级报告,即使报告中没有发现升级的阻碍因素。预升级报告包含在升级前要完成的建议操作,以确保升级的系统工作正常。
如果要执行全新的 RHEL 8 系统安装而不是原位升级过程,审核预升级报告也很有用。
您可以使用以下方法之一评估预升级阶段中的可升级性:
- 
					查看生成的 leapp-report.txt文件中的预升级报告,并使用命令行手动解决报告的问题。
- 使用 Web 控制台查看报告,在可用的情况下应用自动修复,并使用推荐的修复提示修复剩余的问题。
您可以使用自己的自定义脚本处理预升级报告,例如,比较不同环境中多个报告的结果。如需更多信息,请参阅自动 Red Hat Enterprise Linux 预升级报告工作流。
预升级报告无法模拟整个原位升级过程,因此无法识别系统的所有阻碍问题。因此,即使您已审核并修复了报告中的所有问题,您的原位升级也可能被终止。例如,预升级报告无法检测与损坏的软件包下载相关的问题。
5.1. 从命令行评估可升级性
使用命令行在预升级阶段识别潜在的升级问题。
先决条件
- 准备升级 中列出的步骤已完成。
流程
- 在 RHEL 7 系统中,执行预升级阶段: - leapp preupgrade --target <target_os_version> - # leapp preupgrade --target <target_os_version>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 将 <target_os_version> 替换为目标操作系统版本,如 8.10。如果没有定义目标操作系统版本, - Leapp将使用在 支持的升级路径 中的表 1.1 中所指定的默认目标操作系统版本。- 如果您使用 - /etc/yum.repos.d/目录中的 自定义存储库 进行升级,请启用所选的存储库,如下所示:- leapp preupgrade --enablerepo <repository_id1> --enablerepo <repository_id2> ... - # leapp preupgrade --enablerepo <repository_id1> --enablerepo <repository_id2> ...- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 
								如果您要进行 没有 RHSM 的升级 或使用RHUI,请添加 --no-rhsm选项。
- 如果您有一个 扩展升级支持(EUS)、高级更新支持(AUS) 或 SAP 解决方案的更新服务(E4S)(红帽知识库)订阅,请添加 - --channel <channel>选项:- 
										如果要升级到 RHEL 8.8,请将 channel 替换为渠道名称,如 eus、aus或e4s。请注意,SAP HANA 客户应该使用 如何将 SAP 环境从 RHEL 7 原位升级到 RHEL 8 红帽知识库解决方案来执行原位升级。
- 
										如果您要升级到 RHEL 8.10,请将 channel 替换为 ga。
 
- 
										如果要升级到 RHEL 8.8,请将 channel 替换为渠道名称,如 
 
- 检查 - /var/log/leapp/leapp-report.txt文件中的报告,并手动解决所有报告的问题。有些报告的问题包含补救建议。抑制因素 问题阻止您升级,直到您解决了它们。有关报告中可能出现的不同问题的更多信息,请参阅红帽知识库解决方案 如何从 Red Hat Enterprise Linux 7 升级到 Red Hat Enterprise Linux 8? 中的预升级步骤- 报告包含以下风险因素级别: - High
- 很有可能导致系统状态恶化。
- Medium
- 可能会影响系统和应用程序。
- Low
- 不应影响系统,但可能会影响应用程序。
- info
- 对系统或应用程序没有预期影响的信息。 注意- 根据发现的问题的严重性和影响以及解决问题所需的工作量,最好执行 RHEL 8 的全新安装,而不是继续进行原位升级。 
 
- 在某些系统配置中, - Leapp工具会产生您必须手动回答的 true 或 false 问题。如果预升级报告包含 Missing required answers in the answer file 消息,请完成以下步骤:- 
								打开 /var/log/leapp/answerfile文件,并查看 true 或 false 问题。
- 手动编辑 - /var/log/leapp/answerfile文件,删除- #符号来取消文件的确认行的注释,并确认您的回答为- True或- False。如需更多信息,请参阅 Leapp answerfile。注意- 另外,您可以通过运行以下命令来回答 true 或 false 问题: - leapp answer --section <question_section>.<field_name>=<answer> - # leapp answer --section <question_section>.<field_name>=<answer>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 例如,要确认对 Disable pam_pkcs11 module in PAM configuration? 问题的 - False回答,请执行以下命令:- leapp answer --section remove_pam_pkcs11_module_check.confirm=False - # leapp answer --section remove_pam_pkcs11_module_check.confirm=False- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
 
- 
								打开 
- 重复前面的步骤来重新运行预升级报告,以验证您是否解决了所有关键问题。
5.2. 通过 web 控制台评估可升级性,并应用自动化修复方法
识别预升级阶段中的潜在问题,并使用 Web 控制台应用自动补救。
先决条件
- 您已完成了 准备升级 中列出的步骤。
流程
- 安装 - cockpit-leapp插件:- dnf install cockpit-leapp - # dnf install cockpit-leapp- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 以 - root或有权使用- sudo输入管理命令的用户身份登录到 web 控制台。如需有关 web 控制台的更多信息,请参阅 使用 RHEL web 控制台管理系统。
- 在 RHEL 7 系统上,从命令行或 web 控制台终端执行预升级阶段: - leapp preupgrade --target <target_os_version> - # leapp preupgrade --target <target_os_version>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 将 <target_os_version> 替换为目标操作系统版本,如 8.10。如果没有定义目标操作系统版本, - Leapp将使用在 支持的升级路径 中的表 1.1 中所指定的默认目标操作系统版本。- 如果您使用 - /etc/yum.repos.d/目录中的 自定义存储库 进行升级,请启用所选的存储库,如下所示:- leapp preupgrade --enablerepo <repository_id1> --enablerepo <repository_id2> ... - # leapp preupgrade --enablerepo <repository_id1> --enablerepo <repository_id2> ...- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 
								如果您要进行 没有 RHSM 的升级 或使用RHUI,请添加 --no-rhsm选项。
- 如果您有一个 扩展升级支持(EUS)、高级更新支持(AUS) 或 SAP 解决方案的更新服务(E4S)(红帽知识库)订阅,请添加 - --channel <channel>选项:- 
										如果要升级到 RHEL 8.8,请将 channel 替换为渠道名称,如 eus、aus或e4s。请注意,SAP HANA 客户应该使用 如何将 SAP 环境从 RHEL 7 原位升级到 RHEL 8 红帽知识库解决方案来执行原位升级。
- 
										如果您要升级到 RHEL 8.10,请将 channel 替换为 ga。
 
- 
										如果要升级到 RHEL 8.8,请将 channel 替换为渠道名称,如 
 
- 在 web 控制台中,从导航菜单中选择 Upgrade Report 来查看所有报告的问题。抑制因素 问题阻止您升级,直到您解决了它们。有关报告中可能出现的不同问题的更多信息,请参阅红帽知识库解决方案 如何从 Red Hat Enterprise Linux 7 升级到 Red Hat Enterprise Linux 8? 中的预升级步骤 - 要详细查看问题,请选择行来打开详情面板。 - 图 5.1. Web 控制台中的原位升级报告 - 报告包含以下风险因素级别: - High
- 很有可能导致系统状态恶化。
- Medium
- 可能会影响系统和应用程序。
- Low
- 不应影响系统,但可能会影响应用程序。
- info
- 对系统或应用程序没有预期影响的信息。 注意- 根据发现的问题的严重性和影响以及解决问题所需的工作量,最好执行 RHEL 8 的全新安装,而不是继续进行原位升级。 
 
- 在某些配置中, - Leapp工具会生成您必须手动回答的 true 或 false 问题。如果升级报告包含 Missing required answers in the answer file 行,请完成以下步骤:- 选择 Missing required answers in the answer file 行,来打开 Details 面板。默认回答在补救命令的末尾说明。
- 要确认默认回答,请选择 Add to Remediation Plan 来稍后执行补救或 Run Remediation 来立即执行补救。
- 要选择非默认回答,请在终端中执行 - leapp answer命令,指定您要回答的问题以及您确认的回答。- leapp answer --section <question_section>.<field_name>=<answer> - # leapp answer --section <question_section>.<field_name>=<answer>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 例如,要对问题 Disable pam_pkcs11 module in PAM configuration? 确认 - False响应,请执行以下命令- leapp answer --section remove_pam_pkcs11_module_check.confirm=False - # leapp answer --section remove_pam_pkcs11_module_check.confirm=False- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 注意- 您还可以手动编辑 - /var/log/leapp/answerfile文件,通过删除- #符号取消对文件的确认行的注释,并确认您的回答为- True或- False。如需更多信息,请参阅 Leapp answerfile 示例。
 
- 有些问题有您可以运行的修复命令来自动解决问题。您可以在补救命令中单独或一起运行补救命令。 - 要运行单个补救命令,请打开此问题的 Detail 面板,然后点 Run Remediation。
- 要在补救计划中添加补救命令,请打开此问题的Detail 面板,然后点击 Add to Remediation Plan。 - 图 5.2. 详细信息面板 
- 要运行包含所有添加了补救命令的补救计划,请点击报告右上角的 Remediation plan 链接。点 Execute Remediation Plan 执行所有列出的命令。
 
- 审核报告并解决所有报告的问题后,重复第 3-7 步来重新运行报告,以验证您是否解决了所有关键问题。
第 6 章 执行从 RHEL 7 到 RHEL 8 的升级
			使用 Leapp 程序升级到 RHEL 8。
		
流程
- 在 RHEL 7 系统中,启动升级过程: - leapp upgrade --target <target_os_version> - # leapp upgrade --target <target_os_version>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 将 <target_os_version> 替换为目标操作系统(OS)版本,如 8.10。如果没有定义目标操作系统版本, - Leapp将使用在 支持的升级路径 中的表 1.1 中所指定的默认目标操作系统版本。注意- 如果您使用 - /etc/yum.repos.d/目录中的 自定义存储库 进行升级,请启用所选的存储库,如下所示:- leapp upgrade --enablerepo <repository_id1> --enablerepo <repository_id2> … - # leapp upgrade --enablerepo <repository_id1> --enablerepo <repository_id2> …- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 如果您要进行 没有 RHSM 的升级 或使用RHUI,请添加 - --no-rhsm选项。- 如果您要使用 ISO 镜像升级,请添加 - --no-rhsm和- --iso <file_path>选项。将 <file_path> 替换为保存的 ISO 镜像的文件路径,如- /home/rhel8.iso。- 如果您有一个 扩展升级支持(EUS)、高级更新支持(AUS) 或 SAP 解决方案的更新服务(E4S)(红帽知识库)订阅,请添加 - --channel <channel>选项:- 
								如果您要升级到 RHEL 8.8,请使用 leapp preupgrade命令使用的值替换 channel,如eus、aus或e4s。请注意,您必须在leapp preupgrade和leapp upgrade命令中对--channel选项使用同样的值。
- 
								如果您要升级到 RHEL 8.10,请将 channel 替换为 ga。
 - 在升级过程开始时, - Leapp会执行预升级阶段,如 检查预升级报告 中所述。- 如果系统是可升级的, - Leapp会下载必要的数据,并为升级准备 RPM 事务。- 如果您的系统没有达到可靠的条件, - Leapp会终止升级进程,并在- /var/log/leapp/leapp-report.txt文件中提供描述这个问题和推荐解决方案的记录。如需更多信息,请参阅 故障排除。
- 
								如果您要升级到 RHEL 8.8,请使用 
- 手动重启系统: - reboot - # reboot- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 在这个阶段,系统会引导进入基于 RHEL 8 的初始 RAM 磁盘镜像 initramfs。 - Leapp升级所有软件包,然后自动重启到 RHEL 8 系统。- 另外,您可以使用 - --reboot选项输入- leapp upgrade命令并跳过这个手动步骤。- 如果发生故障,请按照故障排除中所述调查日志。 
- 登录到 RHEL 8 系统并验证其状态, RHEL 8 系统升级后状态的验证中所述。
- 执行升级报告和 执行升级后任务 中描述的所有升级后任务。特别是,重新检查并重新应用您的安全策略。
- 如果升级一个系统,并将以 FIPS 模式运行,请删除任何 RHEL 7 内核。然后,重新生成并确保所有加密密钥的 FIPS 合规性。如需更多信息 ,请参阅 RHEL 8 中的加密密钥位置。
第 7 章 验证 RHEL 8 系统升级后的状态
此流程列出了原位升级到 RHEL 8 后建议执行的验证。
先决条件
- 该系统已根据从 RHEL 7 升级到 RHEL 8 中的步骤进行了升级,并可登录到 RHEL 8。
流程
升级完成后,请确定系统是否处于所需状态,至少:
- 验证当前的 OS 版本是否为 Red Hat Enterprise Linux 8: - cat /etc/redhat-release Red Hat Enterprise Linux release <target_os_version> (Ootpa) - # cat /etc/redhat-release Red Hat Enterprise Linux release <target_os_version> (Ootpa)- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 将 target_os_version 替换为目标操作系统版本,如 8.10。 
- 检查 OS 内核版本: - uname -r - # uname -r 4.18.0-305.el<target_os>.x86_64- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - target_os 应该是 - 8或目标操作系统版本,如- 8_10。请注意,- .el8很重要,版本不应早于 4.18.0-305。
- 如果您使用 Red Hat Subscription Manager: - 验证是否安装了正确的产品: - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 将 target_os_version 替换为目标操作系统版本,如 8.10。 
- 升级后,验证发行版本是否马上设置为目标操作系统版本: - subscription-manager release - # subscription-manager release Release: <target_os_version>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 将 target_os_version 替换为目标操作系统版本,如 8.10。 
 
- 例如,验证网络服务是否可操作,试着使用 SSH 连接到服务器。
- 检查应用程序的升级后状态。在某些情况下,您可能需要手动执行迁移和配置更改。例如,要迁移您的数据库,请按照 RHEL 8 数据库服务器文档中的说明操作。
第 8 章 执行升级后的任务
在原位升级到 RHEL 8 后,建议执行以下主要任务。
先决条件
- 您已 根据从 RHEL 7 升级到 RHEL 8 中描述的步骤进行了升级,并可登录到 RHEL 8。
- 您已按照 RHEL 8 系统升级后状态验证原位升级的状态验证。
流程
执行升级后,完成以下任务:
- 从 - /etc/dnf/dnf.conf配置文件中的排除列表中删除任何剩余的- Leapp软件包,包括- snactor软件包。在原位升级过程中,使用- Leapp工具安装的- Leapp软件包会自动添加到 排除列表中,以防止删除或更新重要的文件。原位升级后,您必须在从系统中删除它们之前,从排除列表中删除这些- Leapp软件包。- 
							要从排除列表中手动删除软件包,请编辑 /etc/dnf/dnf.conf配置文件,并从exclude列表中删除所需的Leapp软件包。
- 从 - exclude列表中删除所有软件包:- yum config-manager --save --setopt exclude='' - # yum config-manager --save --setopt exclude=''- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
 
- 
							要从排除列表中手动删除软件包,请编辑 
- 删除剩余的 RHEL 7 软件包,包括剩余的 - Leapp软件包。- 确定旧的内核版本: - cd /lib/modules && ls -d *.el7* - # cd /lib/modules && ls -d *.el7*- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 从旧内核中删除弱模块。如果您有多个旧内核,请对每个内核重复此步骤: - [ -x /usr/sbin/weak-modules ] && /usr/sbin/weak-modules --remove-kernel <version> - # [ -x /usr/sbin/weak-modules ] && /usr/sbin/weak-modules --remove-kernel <version>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 将 <version> 替换为上一步中决定的内核版本,例如: - [ -x /usr/sbin/weak-modules ] && /usr/sbin/weak-modules --remove-kernel 3.10.0-1160.25.1.el7.x86_64 - # [ -x /usr/sbin/weak-modules ] && /usr/sbin/weak-modules --remove-kernel 3.10.0-1160.25.1.el7.x86_64- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 注意- 忽略以下错误信息,如果内核包已被删除,就会产生这个错误信息: - /usr/sbin/weak-modules: line 1081: cd: /lib/modules/<version>/weak-updates: No such file or directory - /usr/sbin/weak-modules: line 1081: cd: /lib/modules/<version>/weak-updates: No such file or directory- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 从引导装载程序条目中删除旧内核。如果您有多个旧内核,请对每个内核重复此步骤: - /bin/kernel-install remove <version> /lib/modules/<version>/vmlinuz - # /bin/kernel-install remove <version> /lib/modules/<version>/vmlinuz- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 使用上一步中决定的内核版本替换 version,例如: - /bin/kernel-install remove 3.10.0-1160.25.1.el7.x86_64 /lib/modules/3.10.0-1160.25.1.el7.x86_64/vmlinuz - # /bin/kernel-install remove 3.10.0-1160.25.1.el7.x86_64 /lib/modules/3.10.0-1160.25.1.el7.x86_64/vmlinuz- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 找到剩余的 RHEL 7 软件包: - rpm -qa | grep -e '\.el[67]' | grep -vE '^(gpg-pubkey|libmodulemd|katello-ca-consumer)' | sort - # rpm -qa | grep -e '\.el[67]' | grep -vE '^(gpg-pubkey|libmodulemd|katello-ca-consumer)' | sort- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 从 RHEL 8 系统中删除剩余的 RHEL 7 软件包,包括旧的内核软件包和 - kernel-workaround软件包。要确保维护 RPM 依赖项,请在执行操作时使用- YUM或- DNF。在接受之前检查事务,以确保没有任何软件包被意外删除。- 例如: - yum remove kernel-workaround $(rpm -qa | grep \.el7 | grep -vE 'gpg-pubkey|libmodulemd|katello-ca-consumer') - # yum remove kernel-workaround $(rpm -qa | grep \.el7 | grep -vE 'gpg-pubkey|libmodulemd|katello-ca-consumer')- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 删除剩余的 - Leapp依赖软件包:- yum remove leapp-deps-el8 leapp-repository-deps-el8 - # yum remove leapp-deps-el8 leapp-repository-deps-el8- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 删除任何剩余的空目录: - rm -r /lib/modules/*el7* - # rm -r /lib/modules/*el7*- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
 
- 可选:从系统中删除所有剩余的与升级相关的数据: - rm -rf /var/log/leapp /root/tmp_leapp_py3 /var/lib/leapp - # rm -rf /var/log/leapp /root/tmp_leapp_py3 /var/lib/leapp- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 重要- 删除这些数据可能会限制红帽支持调查并故障排除升级后问题的能力。 
- 禁用在 RHEL 8 上无法安装或使用其软件包的 YUM 存储库。由 RHSM 管理的软件仓库会自动处理。禁用这些软件仓库: - yum config-manager --set-disabled <repository_id> - # yum config-manager --set-disabled <repository_id>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 将 <repository_id& gt; 替换为存储库 ID。 
- 将旧的救援内核和初始 RAM 磁盘替换为当前的内核和磁盘: - 删除现有救援内核和初始 RAM 磁盘: - rm /boot/vmlinuz-*rescue* /boot/initramfs-*rescue* - # rm /boot/vmlinuz-*rescue* /boot/initramfs-*rescue*- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 重新安装救援内核和相关的初始 RAM 磁盘: - /usr/lib/kernel/install.d/51-dracut-rescue.install add "$(uname -r)" /boot "/boot/vmlinuz-$(uname -r)" - # /usr/lib/kernel/install.d/51-dracut-rescue.install add "$(uname -r)" /boot "/boot/vmlinuz-$(uname -r)"- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 注意- 如果您的系统的内核软件包有不同的名称,比如在实时系统上,请使用正确的软件包名称替换 - kernel-core。
- 如果您的系统在 IBM Z 构架上,请更新 - zipl引导装载程序:- zipl - # zipl- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
 
- 
					可选:查看、修复,然后删除 rpmnew、rpmsave和leappsave文件。请注意,rpmsave和leappsave等效,可以用类似的方式处理。如需更多信息,请参阅 什么是 rpmnew 和 rpmsave 文件?
- 重新检查并重新应用您的安全策略。特别是,需要将 SELinux 模式改为 enforcing。详情请参阅应用安全策略。
验证
- 验证旧内核是否已从引导装载程序条目中删除: - grubby --info=ALL | grep "\.el7" || echo "Old kernels are not present in the boot loader." - # grubby --info=ALL | grep "\.el7" || echo "Old kernels are not present in the boot loader."- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 验证已为当前内核创建了之前删除的救援内核和救援初始 RAM 磁盘文件: - ls /boot/vmlinuz-*rescue* /boot/initramfs-*rescue* lsinitrd /boot/initramfs-*rescue*.img | grep -qm1 "$(uname -r)/kernel/" && echo "OK" || echo "FAIL" - # ls /boot/vmlinuz-*rescue* /boot/initramfs-*rescue* # lsinitrd /boot/initramfs-*rescue*.img | grep -qm1 "$(uname -r)/kernel/" && echo "OK" || echo "FAIL"- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 验证救援引导条目是否指向现有救援文件。请查看 grubby 输出: - grubby --info $(ls /boot/vmlinuz-*rescue*) - # grubby --info $(ls /boot/vmlinuz-*rescue*)- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
第 9 章 应用安全策略
在原位升级过程中,必须禁用某些安全策略。RHEL 8 引进了系统范围加密策略的新概念,同时安全配置可能包含主要发行本之间的更改。要使您的系统更安全,请将 SELinux 切换到 enforcing 模式,并设置系统范围的加密策略。您可能还希望修复系统,以符合特定的安全配置文件。
9.1. 将 SELinux 模式改为 enforcing
				在原位升级过程中,Leapp 会将 SELinux 的模式设置为 permissive。当成功升级系统时,您必须手动将 SELinux 模式改为 enforcing。
			
先决条件
- 系统已升级,并且您已执行了 验证 RHEL 8 系统的升级后状态 中描述的验证。
流程
- 确保没有 SELinux denials,例如,使用 - ausearch工具程序:- ausearch -m AVC,USER_AVC -ts boot - # ausearch -m AVC,USER_AVC -ts boot- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 请注意,上一步只涵盖最常见的情况。要检查所有可能的 SELinux denials,请查看使用 SELinux 中的 识别 SELinux denials 部分。 
- 在您选择的文本编辑器中打开 - /etc/selinux/config文件,例如:- vi /etc/selinux/config - # vi /etc/selinux/config- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 配置 - SELINUX=enforcing选项:- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 保存更改,重启系统: - reboot - # reboot- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
验证
- 系统重启后,确认 - getenforce命令返回- Enforcing:- getenforce - $ getenforce Enforcing- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
9.2. 设置系统范围的加密策略
系统范围的加密策略是一个系统组件,它配置核心加密子系统,包括 TLS、IPSec、SSH、DNSSec 和 Kerberos 协议。
				在成功安装或原位升级后,系统范围的加密策略会自动设置为 DEFAULT。DEFAULT 系统范围的加密政策级别为当前的威胁模型提供了安全设置。
			
要查看或更改当前系统范围的加密策略,请使用 update-crypto-policies 工具:
update-crypto-policies --show
$ update-crypto-policies --show
DEFAULT
				例如,以下命令可将系统范围内的加密策略切换到 FUTURE,这样可防止任何近期可能出现的安全攻击:
			
update-crypto-policies --set FUTURE
# update-crypto-policies --set FUTURE
Setting system policy to FUTURE您还可以自定义系统范围的加密策略。详情请参阅 自定义带有子策略的系统范围的加密策略 和 创建并设置自定义系统范围的加密策略 部分。
9.3. 将强化的系统升级到安全基线
要在成功升级到 RHEL 8 后获得完全强化的系统,您可以使用 OpenSCAP 套件提供的自动化补救功能。OpenSCAP 修复使您的系统符合安全基线,如 PCI-DSS、OSPP 或 ACSC Essential Eight。由于安全产品的发展,配置合规性建议在 Red Hat Enterprise Linux 的主版本之间有所不同。
				当升级一个强化的 RHEL 7 系统时,Leapp 工具 不 提供保持完整强化的直接方法。根据组件配置中的更改,该系统可能会在升级过程中偏离 RHEL 8 的建议。
			
您不能使用同样的 SCAP 内容来扫描 RHEL 7 和 RHEL 8。如果系统的合规性是由像 Red Hat Satellite 或 Red Hat Insights 这样的工具管理的,则更新管理平台。
作为自动化修复的替代方法,您可以按照 OpenSCAP 生成的报告手动进行更改。有关生成合规性报告的详情,请参考 扫描系统以了解安全合规性和漏洞。
根据流程自动强化带有 PCI-DSS 配置文件的系统。
在默认配置中,自动化修复支持 RHEL 系统。因为安装后已更改了系统升级,因此运行修复可能无法使其完全遵从所需的安全配置文件。您可能需要手动修复一些要求。
先决条件
- 
						scap-security-guide软件包安装在 RHEL 8 系统上。
流程
- 查找合适的安全合规数据流 - .xml文件:- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 如需更多信息,请参阅 查看合规性配置文件 章节。 
- 根据从合适的数据流所选的配置文件来修复系统: - oscap xccdf eval --profile pci-dss --remediate /usr/share/xml/scap/ssg/content/ssg-rhel8-ds.xml - # oscap xccdf eval --profile pci-dss --remediate /usr/share/xml/scap/ssg/content/ssg-rhel8-ds.xml- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 您可以根据您要强化系统的配置文件的 ID 来替换 - --profile参数中的- pci-dss值。有关 RHEL 8 中所支持的配置文件的完整列表,请参阅 RHEL 中所支持的 SCAP 安全配置文件。警告- 如果没有谨慎使用,在启用 Remediate 选项的情况下运行系统评估可能会导致系统无法正常工作。红帽不提供任何自动的方法来恢复由强化安全的修复所做的更改。在 RHEL 系统上的默认配置中支持修复。如果在安装后更改了您的系统,运行修复可能无法使其遵守所需的安全配置文件。 
- 重启您的系统: - reboot - # reboot- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
验证
- 验证系统是否遵从配置文件,并将结果保存到 HTML 文件中: - oscap xccdf eval --report pcidss_report.html --profile pci-dss /usr/share/xml/scap/ssg/content/ssg-rhel8-ds.xml - $ oscap xccdf eval --report pcidss_report.html --profile pci-dss /usr/share/xml/scap/ssg/content/ssg-rhel8-ds.xml- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
第 10 章 故障排除
您可以参阅以下内容排除从 RHEL 7 升级到 RHEL 8 时出现的问题。
10.1. 故障排除资源
您可以参考以下故障排除资源。
控制台输出
				默认情况下,Leapp 只会将错误和严重日志级别的信息输出到控制台输出中要改变日志级别,在leapp upgrade 命令中使用 --verbose 或 --debug 选项。
			
- 
						在 verbose 模式中,Leapp会输出 info, warning, error, 和 critical 信息。
- 
						在 debug 模式中,Lapp会输出 debug、info、warning、error 和 critical 信息。
日志
- 
						/var/log/leapp/leapp-upgrade.log文件列出了 initramfs 阶段里的问题。
- 
						/var/log/leapp/dnf-debugdata/目录包含了事务故障排除数据。只有在leapp upgrade命令使用了--debug选项执行时,才会生成这个目录。
- 
						/var/log/leapp/answerfile包含Leapp回答所需的问题。
- 
						Journalctl实用程序提供完整的日志。
Reports
- 
						/var/log/leapp/leapp-report.txt文件列出了在预升级阶段里发现的问题。这个报告也可以在 web 控制台中获得,请参阅 评估可升级性并通过 web 控制台应用自动化修复。
- 
						/var/log/leapp/leapp-report.json文件以机器可读格式列出了在预升级阶段发现的问题,它可让您使用自定义脚本处理报告。如需更多信息,请参阅自动 Red Hat Enterprise Linux 预升级报告工作流。
10.2. 故障排除窍门
您可以参考以下故障排除信息。
预升级阶段
- 确认您的系统满足规划升级中列出的所有条件。
- 
						请确定您遵循了 准备升级 中描述的所有步骤,例如:您的系统没有使用多个网络接口卡(NIC),它们的名称基于内核使用的前缀(eth)。
- 确保您已回答了 - /var/log/leapp/answerfile文件中- Leapp所需的所有问题。如果缺少回答,- Leapp会阻止升级。问题示例:- 在 PAM 配置中禁用 pam_pkcs11 模块?
- 在 PAM 配置中禁用 pam_krb5 模块?
- 使用以下 authselect 调用来配置 PAM 和 nsswitch.conf?
 
- 
						请确定您解决了在预升级报告(位于 /var/log/leapp/leapp-report.txt)中发现的所有问题。您也可以使用 web 控制台来达到此目的,如评估可升级性并通过 web 控制台应用自动化修复 中所述。
例 10.1. Leapp answerfile
					以下是一个未编辑的 /var/log/leapp/answerfile 文件,它有一个未回答的问题:
				
					Label 字段指定需要回答的问题。在这个示例中,问题是 Disable pam_pkcs11 module in PAM configuration?
				
					要回答这个问题,请取消对 confirm 行的注释并输入 True 或 False 作为回答。在本例中,所选答案为 True :
				
[remove_pam_pkcs11_module_check] ... # Available choices: True/False # Unanswered question. Uncomment the following line with your answer confirm = True
[remove_pam_pkcs11_module_check]
...
# Available choices: True/False
# Unanswered question. Uncomment the following line with your answer
confirm = True下载阶段
- 如果在下载 RPM 软件包时出现问题,请检查位于 - /var/log/leapp/dnf-debugdata/目录的事务调试数据。注意- 如果没有生成事务调试数据, - /var/log/leapp/dnf-debugdata/目录为空,则不存在。当所需的软件仓库不可用时,会出现这种情况。
initramfs 阶段
- 在此阶段,潜在的故障会进入 Dracut shell。检查 Journal 日志: - journalctl - # journalctl- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 或者,使用 - reboot命令从 Dracut shell 重启系统,并检查- /var/log/leapp/leapp-upgrade.log文件。
升级后阶段
- 如果您的系统看上去成功升级,但是使用旧的 RHEL 7 内核引导,重启系统并检查 GRUB 中默认条目的内核版本。
- 确保您遵循了 RHEL 8 系统升级后状态的验证中推荐的步骤。
- 如果您的应用程序或服务在您将 SELinux 切换到 enforcing 模式后停止工作或者行为不正确,请使用 ausearch, journalctl, 或 dmesg 检查拒绝: - ausearch -m AVC,USER_AVC -ts boot journalctl -t setroubleshoot dmesg | grep -i -e selinux -e type=1400 - # ausearch -m AVC,USER_AVC -ts boot # journalctl -t setroubleshoot # dmesg | grep -i -e selinux -e type=1400- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 最常见的问题是由错误的标记造成的。更多详情请参阅SELinux 故障排除。 
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文件中使用了- winbind和- winsSamba 模块,则不能执行原位升级。升级事务失败并显示以下出错信息,- 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 - 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 Copied! - Toggle word wrap Toggle overflow - 要临时解决这个问题,请配置系统以便在更新的过程中只使用本地供应商的 - 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 加密类型:- 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 之间更新。在这些系统上,执行以下步骤:- 
								设置 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', 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 ... - OperationalError: unable to open database file Cannot create XFS filesystem in ...- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 如果出现这个问题,请完成以下步骤: - 卸载与系统分区无关且在升级过程中不需要的文件系统。
- 
								注释掉 /etc/fstab文件中卸载的文件系统的条目,以防止它们在升级过程中被挂载。
- 升级后恢复原始文件系统配置。 
 
- 
						如果您的系统上没有 /etc/sysconfig/kernel系统配置文件,升级会失败,导致系统故障。要防止这个问题,请使用预期的配置手动创建该文件。如需更多信息,请参阅 验证引导装载程序。(RHEL-22306)
- 如果 - /etc/fstab文件中定义的任何挂载的文件系统没有设置- shared传播标志,则升级可能会失败。要防止这个问题,请重新挂载这些文件系统,来将其设置为 shared :- mount -o remount --make-shared <mountpoint> - # mount -o remount --make-shared <mountpoint>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 使用每个文件系统的挂载点替换 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-brotliRPM,例如,如果您的系统使用 JBoss Core Services Web 服务器,则升级可能会失败。要防止这个问题,请在升级前删除软件包。另外,如果您无法在升级前删除软件包,请运行以下命令,以确保- brotli软件包在升级过程被安装:- echo brotli >> /etc/leapp/transaction/to_install - # echo brotli >> /etc/leapp/transaction/to_install- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 网卡没在 PCI 总线上的系统,如 IBM Z 机器上的 RoCE ,可能会因为 NIC 名称的更改,在升级后遇到连接丢失的情况。要防止这个问题,请在升级前完成以下步骤: - 在内核引导参数中添加 - net.ifnames=0:- grubby --update-kernel=ALL --args 'net.ifnames=0' - # grubby --update-kernel=ALL --args 'net.ifnames=0'- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 在 IBM Z 系统上,输入以下命令使更改有效: - zipl - # zipl- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 重启您的系统。 
 
- 
						如果您的 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 
 
- 
						如果您使用 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文件中注释掉挂载点。您可以在升级后恢复配置。
 
- 
								
10.4. 获取支持
				要创建一个支持问题单,请选择 RHEL 7 作为产品,并提供您系统的 sosreport。
			
- 
						要在您的系统中生成 sosreport,请运行:
sosreport
# sosreport请注意:您可以将问题单 ID 留空。
有关生成 sosreport 的更多信息,请参阅红帽知识库解决方案 什么是 sosreport 以及如何在 Red Hat Enterprise Linux 上创建它?。
有关在客户门户网站上开和管理支持问题单的更多信息,请参阅红帽知识库解决方案、如何在客户门户网站上开和管理支持问题单?。
附录 A. RHEL 7 软件仓库
在升级前,确定您启用了合适的软件仓库,如 为升级准备 RHEL 7 系统 流程中的第 4 步所述。
			如果您计划在升级过程中使用 Red Hat Subscription Manager,您 需要在升级前使用 subscription-manager repos --enable repository_id 命令启用以下软件仓库:
		
| 构架 | 软件仓库 | 仓库 ID | 
|---|---|---|
| 64-bit Intel | Base | 
							 | 
| Extras | 
							 | |
| IBM POWER8 (little endian) | Base | 
							 | 
| Extras | 
							 | |
| IBM Z | Base | 
							 | 
| Extras | 
							 | 
			升级前,可以使用 subscription-manager repos --enable repoid 命令启用以下仓库:
		
| 构架 | 软件仓库 | 仓库 ID | 
|---|---|---|
| 64-bit Intel | Optional | 
							 | 
| Supplementary | 
							 | |
| IBM POWER8 (little endian) | Optional | 
							 | 
| Supplementary | 
							 | |
| IBM Z | Optional | 
							 | 
| Supplementary | 
							 | 
				如果您在原位升级前已经启用了 RHEL 7 Optional 或 RHEL 7 Supplementary 软件仓库, Leapp 会相应地启用 RHEL 8 CodeReady Linux Builder 或 RHEL 8 软件仓库。
			
如果您决定使用自定义软件仓库,请根据配置自定义软件仓库中的内容启用它们。
附录 B. RHEL 8 软件仓库
如果您的系统使用 Red Hat Subscription Manager(RHSM)注册到 Red Hat Content Delivery Network(CDN),则 RHEL 8 软件仓库会在原位升级过程中自动启用。但是,在使用 RHSM 注册到 Red Hat Satellite 的系统上,您必须在运行预升级报告前手动启用和同步 RHEL 7 和 RHEL 8 软件仓库。
确保启用每个存储库的目标操作系统(OS)版本,如 RHEL 8.10。如果您只启用了 RHEL 8 版本的软件仓库,则会禁止原位升级。
			如果您计划在升级过程中使用 Red Hat Satellite,在使用 Satellite Web UI 或 hammer repository-set enable 以及 hammer product synchronize 命令进行升级之前,您 必须启用并同步 以下 RHEL 8 存储库:
		
将 <target_os_version> 替换为目标操作系统(OS)版本,如 8.10。
| 架构 | 软件仓库 | 仓库 ID | 仓库名称 | 发行版本 | 
|---|---|---|---|---|
| 64 位 Intel | BaseOS | 
							 | Red Hat Enterprise Linux 8 for x86_64 - BaseOS (RPMs) | x86_64 <target_os_version> | 
| AppStream | 
							 | Red Hat Enterprise Linux 8 for x86_64 - AppStream (RPMs) | x86_64 <target_os_version> | |
| IBM Power8 (little endian) | BaseOS | 
							 | Red Hat Enterprise Linux 8 for Power, little endian - BaseOS(RPMs) | ppc64le <target_os_version> | 
| AppStream | 
							 | Red Hat Enterprise Linux 8 for Power, little endian - AppStream(RPMs) | ppc64le <target_os_version> | |
| IBM Z | BaseOS | 
							 | Red Hat Enterprise Linux 8 for IBM z Systems - BaseOS(RPMs) | s390x <target_os_version> | 
| AppStream | 
							 | Red Hat Enterprise Linux 8 for IBM z Systems - AppStream (RPMs) | s390x <target_os_version> | 
附录 C. RHEL 8 中加密密钥的位置
在升级联邦信息处理标准(FIPS)模式下运行的系统后,您必须重新生成,否则确保所有加密密钥符合 FIPS 。下表中列出了此类密钥的一些已知位置。请注意,列表是并不完整,您可能还要检查其他位置。
| Application(应用程序) | 密钥的位置 | 注 | 
|---|---|---|
| Apache mod_ssl | 
							 | 
							如果  | 
| Bind9 RNDC | 
							 | 
							 | 
| Cyrus IMAPd | 
							 | 
							 | 
| dnssec-Trigger | 
							 | 
							 | 
| Dovecot | 
							 | 
							 | 
| OpenPegasus | 
							 | 
							 | 
| OpenSSH | 
							 | 
							Ed25519 和 DSA 密钥不符合 FIPS。 | 
| Postfix | 
							 | 
							 | 
| RHEL web 控制台 | 
							 | 
							Web 控制台运行  | 
| sendmail | 
							 | 
							 | 
要确保第三方应用程序的加密密钥符合 FIPS ,请参阅各个应用程序的相应文档。另外:
- 打开端口的任何服务都可以使用 TLS 证书。 - 不是所有服务都会自动生成加密密钥,但许多默认自动启动的服务通常都这样做。
 
- 还需关注使用任何加密库(如 NSS、GnuTLS、OpenSSL 和 libgcrypt)的服务。
- 还要检查备份、磁盘加密、文件加密和类似的应用程序。
因为 RHEL 8 中的 FIPS 模式限制 DSA 密钥、DH 参数、少于 1024 位的 RSA 密钥,以及一些其它密码,所以旧的加密密钥在从 RHEL 7 升级后停止工作。如需更多信息,请参阅采用 RHEL 8 的注意事项文档中的 核心加密组件中的变化 部分和 RHEL 8 安全强化文档中的 使用系统范围的加密策略 一章。
 
    