如何执行从 RHEL 派生的 Linux 发行版到 RHEL 的不受支持的转换
本文档提供了关于如何从其他 Linux 发行版本到 Red Hat Enterprise Linux (RHEL)执行不受支持的转换的说明。
转换通过 Convert2RHEL 工具(从 GitHub 获取)执行,对这种情况红帽不提供支持。
红帽支持从 Alma Linux、CentOS Linux、Oracle Linux 和 Rocky Linux 转换到 RHEL。如需更多信息,请参阅 使用 Convert2RHEL 工具从 Linux 发行版本转换到 RHEL。另请参阅 Convert2RHEL 支持政策。
重要:
红帽建议您寻求 红帽咨询服务 的支持,以确保转换过程可以平稳进行。
作为成功转换系统的一部分所安装的红帽软件包将自动获得红帽支持。对于在转换过程中保持不变的第三方软件包,红帽可能不会提供支持。请参阅 红帽关于第三方软件支持的政策。
如果您在使用 Convert2RHEL 工具时遇到问题,请在 GitHub 中提交问题。
操作系统转换是如何进行的
自动转换过程在运行的系统上执行。Convert2RHEL 工具将原始 Linux 发行版本中的所有 RPM 软件包替换为其 RHEL 版本。在转换过程结束时,需要重启系统来引导到 RHEL 内核。
备注:
仅在原始发行版本中提供而在 RHEL 软件仓库中没有对应软件包的软件包,或者既不是来自原始 Linux 发行版也不是来自 RHEL 的第三方软件包,都不会受到转换的影响。
支持的转换和不支持的转换之间的区别
红帽允许一些从 RHEL 派生的操作系统转换到 RHEL。但是,红帽不支持的转换不会经过红帽测试,因此您需要自己承担转换的风险。红帽在发布前对支持的转换进行了全面的测试。
不同的转换路径分为受支持的转换和不受支持的转换。例如,从 Scientific Linux 7 转换到 RHEL 7 是不受支持的 ,而从 CentOS Linux 7 转换到 RHEL 7 是受支持的。有关不支持的相同版本转换的完整列表,请参阅下表。有关受支持的转换路径的完整列表,请参阅《使用 Convert2RHEL 工具从 Linux 发行版本转换到 RHEL 指南》中的 受支持的转换路径。
如果您要执行一个不支持的转换,请使用此知识库文章来了解如何准备您的系统并执行转换。如果您要执行一个受支持的转换,你必须使用 通过 Convert2RHEL 工具从 Linux 发行版本转换到 RHEL 指南。如果您尝试使用受支持转换的说明来执行不受支持的转换,反之亦然,都可能会在转换过程中遇到问题。
可用的不受支持的转换路径
目前,可以将运行以下 Linux 发行版、架构和版本的系统转换为下表所列对应 RHEL 主版本的最新次要版本,但此类转换不受支持。
| 源操作系统 | 目标操作系统 | 架构 |
|---|---|---|
| Amazon Linux 2 | RHEL 7 | 64 位 Intel 架构 |
| CentOS Stream 9 | RHEL 9 | 64 位 Intel 架构 |
| CentOS Stream 8 | RHEL 8 | 64 位 Intel 架构 |
| Scientific Linux 7 | RHEL 7 | 64 位 Intel 架构 |
除了上述不支持的转换,还可以执行从 Alma Linux、CentOS Linux、Oracle Linux 或 Rocky Linux 到 RHEL 的受支持的转换。有关支持的转换的信息,请参阅 使用 Convert2RHEL 工具从 Linux 发行版本转换到 RHEL。
您还可以执行从 CentOS Stream 9 或 Alma Linux 9 升级到 RHEL 10 的不受支持的同时升级和转换。有关不受支持的升级和转换的更多信息,请参阅 执行从 RHEL 派生的 Linux 发行版本到 RHEL 10的不受支持的升级。
RHEL 7 已处于维护支持阶段的结束期。如果您转换为 RHEL 7 并计划继续使用 RHEL 7,则强烈建议您购买延长生命周期支持(ELS)附加服务订阅。如果您计划转换到 RHEL 7,并立即升级到 RHEL 8 或更高版本,则不需要 ELS 订阅。如需更多信息,请参阅 Red Hat Enterprise Linux 生命周期。
Amazon Linux 2 的转换过程仅支持标准系统构建。转换专用的工作负载系统(如 ECS-优化型构建)可能会失败。
如果您从 Amazon Linux 2 转换并计划继续使用 RHEL 7,您可以使用 Red Hat Enterprise Linux for Third Party Linux Migration with ELS Amazon Web Services (AWS) 订阅。在进行转换前,订阅服务。您不能使用此订阅进行后续的升级到 RHEL 8 或更高版本。
如果您计划在升级到 RHEL 7 后升级到 RHEL 8 或更高版本,您可以在没有 ELS 附加组件的情况下使用订阅,如以下选项:
- 面向团队的 Red Hat 开发者订阅
- 面向个人的 Red Hat 开发者订阅
- 面向开源基础架构的 Red Hat Enterprise Linux
- 面向商业开发人员的 Red Hat Enterprise Linux
如果您打算在生产环境中使用 RHEL,请联系销售人员 或了解 红帽商店。
重要
目前某些系统设置不支持转换。如需更多信息,请参阅 已知问题。
准备转换
- 备份您的系统,并验证您是否能够恢复该系统。
- 确保标准内核为引导的内核。
-
如果您使用防火墙、Red Hat Satellite 或代理服务器进行转换,请确保您有权限访问以下连接:
- https://cdn.redhat.com
- https://cdn-public.redhat.com
- https://subscription.rhsm.redhat.com - 仅具有防火墙的系统需要
- HTTPS://*.akamaiedge.net - 仅具有防火墙的系统需要
- https://cert.console.redhat.com
-
安装 Convert2RHEL 工具:
-
下载 Red Hat GPG 密钥:
# curl -o /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release https://security.access.redhat.com/data/fd431d51.txt -
安装 Convert2RHEL 仓库文件:
-
对于到 RHEL 7 的转换,请输入以下命令:
# curl -o /etc/yum.repos.d/convert2rhel.repo https://cdn-public.redhat.com/content/public/repofiles/convert2rhel-for-rhel-7-x86_64.repo -
对于到 RHEL 8 的转换,请输入以下命令:
# curl -o /etc/yum.repos.d/convert2rhel.repo https://cdn-public.redhat.com/content/public/repofiles/convert2rhel-for-rhel-8-x86_64.repo -
对于到 RHEL 9 的转换,请输入以下命令:
# curl -o /etc/yum.repos.d/convert2rhel.repo https://cdn-public.redhat.com/content/public/repofiles/convert2rhel-for-rhel-9-x86_64.repo
-
备注:
您必须使用最新版本的 Convert2RHEL 仓库文件执行转换。如果您之前已安装了仓库文件的早期版本,请删除之前的版本并安装当前版本。-
安装
Convert2RHEL工具:# yum -y install convert2rhel
-
-
如果您从 Amazon Linux 2 转换,请安装以下
python-dmidecode软件包版本,以防止在转换过程中出现依赖项错误。例如,从 Red Hat Universal Base Image 安装软件包:# yum install -y https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi/server/7/7Server/x86_64/os/Packages/p/python-dmidecode-3.12.2-4.el7.x86_64.rpm -
确保您可以使用以下方法之一访问 RHEL 软件包:
- 通过 Red Hat Subscription Manager (RHSM) 提供的 Red Hat Content Delivery Network (CDN)。您必须有红帽帐户和适当的 RHEL 订阅才能访问 RHSM。请注意,操作系统将转换为适用于相应主版本的最新 RHEL 次版本。
- Red Hat Satellite 处于完整支持或维护支持阶段。如需更多信息,请参阅 Red Hat Satellite 产品生命周期。
备注
确保 Satellite 服务器满足以下条件:- Satellite 具有导入的 RHEL 存储库的订阅清单。如需更多信息,请参阅特定 Red Hat Satellite 版本(如 6.8 )的内容管理指南中的管理订阅一章。
- 所有必需的存储库都已启用,并与最新的更新同步,并在 Satellite 上发布。至少为适当的操作系统主版本启用以下存储库:
- Red Hat Enterprise Linux 7 Server (RPMs) x86_64 7Server
- Red Hat Enterprise Linux 8 for x86_64 - AppStream (RPMs) 8.10
- Red Hat Enterprise Linux 8 for x86_64 - BaseOS (RPMs) 8.10
- Red Hat Enterprise Linux 9 for x86_64 - BaseOS (RPMs) <target_os>
- Red Hat Enterprise Linux 9 for x86_64 - AppStream (RPMs) <target_os>
将 <target_os> 替换为最新的 RHEL 9 次版本,如 9.8。
- 您在 Satellite 中创建了一个激活密钥,并将上述存储库分配给密钥。如需更多信息,请参阅 管理激活密钥。
- 在
/etc/yum.repos.d/目录中配置自定义存储库,例如指向 RHEL ISO、FTP 或 HTTP。对于只能访问本地网络或可移动介质、因此无法通过 RHSM 访问 Red Hat CDN 的系统,请使用自定义存储库。请注意,操作系统将转换为这些存储库提供的 RHEL 版本。确保 RHEL 次版本与原始操作系统的次版本相同或更新,以防止降级和潜在的转换失败。如需更多信息,请参阅 创建本地仓库并与断开连接/离线/气隙系统共享。
-
如果您通过 Red Hat Satellite 服务器访问 RHEL 软件包,请使用与提供 RHEL 软件仓库访问权限的内容视图(Content View)关联的激活密钥,将系统注册到 Red Hat Satellite。如果您的系统没有对原始厂商存储库的访问权限,请确保内容视图提供了对原始厂商和 RHEL 软件仓库的访问权限。如果您的系统已经注册,您可以按照 如何使用 hammer 命令行和 Satellite Web UI 更改生命周期环境和内容主机的内容视图?知识库文章.如需更多信息,请参阅 管理主机。
-
如果您使用 RHSM 进行转换,请更新
/etc/convert2rhel.ini文件以包含以下数据:[subscription_manager] org = <organization_ID> activation_key = <activation_key>如果您使用 Red Hat CDN,将 organization_id 和 activation_key 替换为 Red Hat Hybrid Cloud Console 中的机构 ID 和激活密钥。
-
从 Amazon Linux 2 转换时,包括以下数据:
[inhibitor_overrides] allow_unavailable_kmods=true skip_kernel_currency_check=true -
使用 Red Hat Enterprise Linux for Third Party Linux Migration with ELS AWS 订阅从 Amazon Linux 2 进行转换时,包括以下数据:
[host_metering] configure_host_metering = auto
-
-
临时禁用防病毒软件以防止转换失败。
-
如果您使用自定义存储库访问 RHEL 软件包,请禁用这些存储库。
Convert2RHEL工具会在转换过程中启用自定义存储库。 -
将原始操作系统中的软件包更新至系统可访问的软件仓库中的最新版本,并重启系统:
# yum update -y # reboot如果没有执行此步骤,回滚 功能将无法正常工作,在任何阶段中退出转换可能会导致系统无法正常工作。
查看预转换分析报告
要评估您的系统是否可以转换为 RHEL,请运行 RHEL 预转换分析。预转换分析生成一份报告,它汇总了潜在的问题并建议推荐的解决方案。该报告还帮助您确定是否可行或是否建议转换到 RHEL。
请始终查看整个预转换分析报告,即使报告没有发现任何阻碍转换的问题。预转换分析报告包含在转换之前完成的建议操作,以确保转换的 RHEL 系统正常工作。
重要
预转换分析报告无法识别系统中的所有会阻碍转换的问题。因此,即使您已检查和修复报告中的所有问题,在转换过程中可能还会出现问题。
-
在您的系统上,运行预转换分析:
# convert2rhel analyze- 如果您将系统转换为 RHEL 7,并拥有 延长生命周期支持(ELS)附加组件 或 Red Hat Enterprise Linux for Third Party Linux for Third Party Linux Migration with ELS AWS 订阅,请添加
--els选项。如果您计划继续使用 RHEL 7 以持续获得支持,则建议您购买 ELS 附加组件。
- 如果您将系统转换为 RHEL 7,并拥有 延长生命周期支持(ELS)附加组件 或 Red Hat Enterprise Linux for Third Party Linux for Third Party Linux Migration with ELS AWS 订阅,请添加
-
预转换分析运行一系列测试,以确定您的系统是否可以转换为 RHEL。分析完成后,在终端中的预转换报告中检查每个已完成测试的状态和细节。非成功的测试包括问题的描述、可能的原因诊断,以及推荐的补救措施(如适用)。
每个测试结果都产生以下状态之一:
- Success:测试成功,此组件没有问题。
- Error:测试遇到了一个导致转换失败的问题,因为它很可能导致系统状态恶化。在进行转换前,必须解决此问题。
- Overridable:测试遇到了一个导致转换失败的问题,因为它很可能导致系统状态恶化。在进行转换前,必须解决或手动覆盖此问题。
- Warning:测试遇到在转换后可能会导致系统和应用程序出现问题的问题。但是,这个问题并不会造成转换失败。
- Skip:无法运行此测试,因为预备测试失败。可能会导致转换失败。
- Info:信息性提示,预期不会对系统或应用程序产生影响。
例如:
========== Warning (Review and fix if needed) ========== (WARNING) PACKAGE_UPDATES::PACKAGE_NOT_UP_TO_DATE_MESSAGE - Outdated packages detected Description: Please refer to the diagnosis for further information Diagnosis: The system has 4 package(s) not updated based on the enabled system repositories. List of packages to update: openssh-server openssh openssh-clients. Not updating the packages may cause the conversion to fail. Consider updating the packages before proceeding with the conversion. Remediation: [No further information given] -
检查报告并解决所有报告的问题后,重复步骤 1-2 以重新运行分析,并确认没有未处理的问题。
转换系统
-
启动
Convert2RHEL工具:# convert2rhel-
要显示所有可用选项,请使用
--help(-h)选项。 -
如果您使用自定义存储库而不是 RHSM 进行转换,请添加
--no-rhsm和--enablerepo <RHEL_RepoID1> --enablerepo <RHEL_RepoID2>选项。将 <RHEL_RepoID> 替换为在/etc/yum.repos.d/目录中配置的自定义存储库,例如:rhel-7-server-rpmsrhel-8-baseos和rhel-8-appstreamrhel-9-for-x86_64-baseos-rpms和rhel-9-for-x86_64-appstream-rpms
-
如果您将系统转换为 RHEL 7,并拥有 延长生命周期支持(ELS)附加组件 或 Red Hat Enterprise Linux for Third Party Linux for Third Party Linux Migration with ELS AWS 订阅,请添加
--els选项。如果您计划继续使用 RHEL 7 以持续获得支持,则建议您购买 ELS 附加组件。
-
-
在
Convert2RHEL开始使用 RHEL 软件包替换原始发行版本中的软件包前,会显示以下警告消息:The tool allows rollback of any action until this point. By continuing all further changes on the system will need to be reverted manually by the user, if necessary.到此为止,
Convert2RHEL所做的更改可以自动恢复。确认您要继续转换过程。 -
等待
Convert2RHEL安装 RHEL 软件包。 -
建议:如果您使用的自定义存储库进行转换,订阅和更新您的 RHEL 系统:
- 安装 subscription-manager 命令行工具:
# yum install subscription-manager -y- 注册并订阅您的系统。如需更多信息,请参阅 如何使用 Red Hat Subscription-Manager 在红帽客户门户网站中注册和订阅系统。
- 更新您的系统:
# yum update -y -
此时,系统仍使用 RAM 中加载的原始发行版本内核运行。重启系统以引导到新安装的 RHEL 内核。
# reboot -
如果您使用 Red Hat Enterprise Linux for Third Party Linux Migration with ELS 产品转换 Amazon Linux 2,请确保启用了主机计量服务并在系统上运行:
# systemctl status host-metering.service如需更多信息,请参阅 在云环境中通过延长生命周期支持启用 Red Hat Enterprise Linux 的计量。
-
从原始操作系统中删除保持不变的第三方软件包(通常是 RHEL 没有对应的软件包)。要获得这些软件包的列表,请使用:
# yum list extras --disablerepo="*" --enablerepo=<RHEL_RepoID>将 RHEL_RepoID 替换为存储库 ID。
备注:Amazon Linux 2 中的转换过程将删除一些组件,如 Docker 和 Python 3.8,因为主版本不匹配或目标系统上缺少对等的软件包。如果您在转换后需要这些组件,请从相应的第三方来源重新安装它们。
-
如有必要,在转换后重新配置系统服务。
-
可选:执行原位升级到较新的 RHEL 版本,以接收最新的增强功能、安全功能和漏洞修复。如需更多信息,请参阅 从 RHEL 7 升级到 RHEL 8,从 RHEL 8 升级到 RHEL 9,然后从 RHEL 9 升级到 RHEL 10。
故障排除
日志
Convert2RHEL 工具将 convert2rhel.log 文件存储在 /var/log/convert2rhel/ 目录中。其内容与标准输出中的内容相同。
rpm -Va 命令的输出(它会自动运行,除非使用了 --no-rpm-va 选项)存储在 /var/log/convert2rhel/rpm_va.log 文件中以用于调试目的。
回滚
在以下条件下,Convert2RHEL 工具提供了有限的回滚功能:
-
如果
Convert2RHEL已在分析模式下运行,则实用程序会执行它所做的所有更改的回滚。 -
如果工具运行失败或被用户停止,则只有
Convert2RHEL开始使用 RHEL 软件包替换原始发行版本中的软件包之前执行的更改可以回滚。这个时间点会通过一条警告消息指示:The tool allows rollback of any action until this point. By continuing all further changes on the system will need to be reverted manually by the user, if necessary.随后会询问您是否希望继续该过程。
备注:如果使用 -y 选项,则会跳过确认自动回滚何时将不再可用的提示。
警告:如果转换过程在 Convert2RHEL 启动了软件包替换阶段后取消或失败,则系统可能会无法正常工作。在这种情况下,需要手动修复。请联系 红帽咨询服务 以获得帮助。
已知问题
- 如果有任何文件被直接挂载到
/mnt/目录,或者/sys/目录作为只读挂载,则转换将停止。 - 目前,不支持使用由红帽或第三方提供的高可用性集群软件的系统转换到 RHEL。红帽建议将系统迁移到新安装的 RHEL 系统,以确保这些环境的完整性。
- 目前不支持使用 RHEL 内核模块中不存在的内核模块的系统进行转换。不支持的内核模块包括:
- 用于专用应用程序、GPU、网络驱动程序或存储驱动程序的内核模块
- 由 DKMS 构建的自定义编译的内核模块
红帽建议在转换前禁用或卸载外部内核模块,然后在转换后启用或重新安装这些内核模块。
-
使用 HTTP 代理服务器连接到互联网的系统无法通过 RHSM 使用 Red Hat CDN 或 Satellite 进行转换。要临时解决这个问题,请为 yum 启用 HTTP 代理,然后为 RHSM 配置 HTTP 代理:
- 配置 yum 以使用 HTTP 代理,如 如何在 RHEL 上为 Yum 命令启用代理设置?中所述。
-
安装 subscription-manager 软件包。
- 下载 Red Hat GPG 密钥:
# curl -o /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release https://www.redhat.com/security/data/fd431d51.txt-
为包含 subscription-manager 软件包的 client-tools 存储库安装仓库文件:
- 对于到 RHEL 7 的转换:
# curl -o /etc/yum.repos.d/client-tools.repo https://ftp.redhat.com/redhat/client-tools/client-tools-for-rhel-7-server.repo- 对于到 RHEL 8 的转换:
curl -o /etc/yum.repos.d/client-tools.repo https://ftp.redhat.com/redhat/client-tools/client-tools-for-rhel-8-server.repo- 对于到 RHEL 9 的转换:
curl -o /etc/yum.repos.d/client-tools.repo https://ftp.redhat.com/redhat/client-tools/client-tools-for-rhel-9.repo -
安装以下 subscription-manager 软件包:
# yum -y install subscription-manager subscription-manager-rhsm-certificates -
为 RHSM 配置 HTTP 代理,如 如何为 Red Hat Subscription Management 配置 HTTP 代理 中所述。
- 使用 RHSM 注册系统:
# subscription-manager register --org _<organization_id>_ --activationkey _<activation_key>_将 organization_id 和 activation_key 替换为 红帽客户门户网站 中的机构 ID 和激活密钥。
-
从
/etc/convert2rhel.ini文件中删除机构 ID 和激活密钥。 -
执行到 RHEL 的转换:
# convert2rhel
- 如果您注册到 RHSM 并使用 RHSM 凭据进行转换,在转换过程中执行回滚时,系统会被重新注册,且原始 RHSM 注册没有恢复。要临时解决这个问题,请在回滚后再次使用 RHSM 注册系统。
获取支持
重要:
红帽目前不支持从 Amazon Linux 2 和 Scientific Linux 7 转换到 RHEL 7、CentOS Stream 8、CentOS Stream 9 转换到 RHEL 9。红帽支持从 Alma Linux、CentOS Linux、Oracle Linux 或 Rocky Linux 转换到 RHEL。有关支持的转换的更多信息,请参阅 使用 Convert2RHEL 工具从 Linux 发行版本转换到 RHEL。
要报告 Convert2RHEL 中的错误,请在 GitHub 中提交问题。
其他资源
使用 Convert2RHEL 工具从 Linux 发行版本转换到 RHEL
Red Hat Enterprise Linux 的技术能力和限制
Red Hat Enterprise Linux 文档
迁移规划指南 - 迁移到 RHEL 7
使用 RHEL 8 时的注意事项
从 RHEL 7 升级到 RHEL 8
如何在不使用 Satellite 服务器的情况下为 Red Hat Enterprise Linux 5、6、7、8 创建一个最新更新的本地镜像?
博客文章:使用 Convert2RHEL 和 Satellite 从 CentOS 转换到 RHEL
Comments