从 RHEL 6 升级至 RHEL 7
把 Red Hat Enterprise Linux 6 原位(in-place)升级到 Red Hat Enterprise Linux 7
摘要
前言 复制链接链接已复制到粘贴板!
本文档论述了从 RHEL 6 原位升级到 RHEL 7 的步骤。可用的原位升级路径是从 RHEL 6.10 升级到 RHEL 7.9。请注意,对于 RHEL 6.10,只有延长生命周期阶段(ELP)支持。
如果您正在使用 SAP HANA,请参阅如何将使用 SAP HANA 的 RHEL 6 升级到 RHEL 7。请注意,使用 SAP HANA 的 RHEL 的升级路径可能会有所不同。
从 RHEL 6 的最新版本升级到 RHEL 7 的最新版本包括以下步骤:
- 检查您的系统升级是否可用。如需更多信息,请参阅 第 1 章 计划升级。
- 准备系统升级:安装所需的软件仓库和软件包,删除不受支持的软件包。请参阅第 2 章 为 RHEL 6 系统升级做准备 获取更多信息。
- 使用 Preupgrade Assistant 检查您的系统是否存在可能会影响升级的问题。如需更多信息,请参阅 第 3 章 评估升级是否可行。
- 运行 Red Hat Upgrade Tool 来升级您的系统。如需更多信息,请参阅 第 4 章 将您的系统从 RHEL 6 升级到 RHEL 7。
对红帽文档提供反馈 复制链接链接已复制到粘贴板!
我们感谢您对文档提供反馈信息。请让我们了解如何改进文档。要提交反馈意见,请创建一个 Bugzilla ticket:
- 进入 Bugzilla 网站。
- 在 Component 中选择 Documentation。
- 在 Description 中输入您要提供的信息。包括文档相关部分的链接。
- 点 Submit Bug。
主要迁移术语 复制链接链接已复制到粘贴板!
尽管以下与迁移相关的术语在软件业中常用,但这里的定义特定于 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 主版本。
为了确保您了解 RHEL 6 和 RHEL 7 之间的重要变化,请在开始原位升级前参考迁移规划指南。您还可以通过运行 Preupgrade Assistant 来验证您的系统是否可以升级。在对您的系统进行任何更改前,Preupgrade Assistant 会评估您的系统是否存在可能会影响或限制升级的问题。请参阅已知问题。
当对系统进行原位升级后,可以使用 Red Hat Upgrade Tool 集成的回滚功能,或其他适当的备份和恢复解决方案(例如,使用 Relax-and-Recover(ReaR)程序)恢复回以前的系统。如需更多信息,请参阅回滚升级。
如果您的 RHEL 系统满足以下条件,可以使用这个 RHEL 6 到 RHEL 7 的升级步骤:
- Red Hat Enterprise Linux 6.10:系统必须安装了最新的 RHEL 6.10 软件包。请注意,对于 RHEL 6.10,只有延长生命周期阶段(ELP)支持。
构架和变体:只能升级以下列表中的架构和变体的组合:
Expand 产品变体 Intel 64 位构架 IBM POWER,big endian IBM Z 64 位架构 Intel 32 位构架 服务器版
Available
Available
Available
不可用
HPC Compute 节点
Available
不适用
不适用
不可用
桌面版
不可用
不适用
不适用
不可用
工作站版
不可用
不适用
不适用
不可用
服务器运行 CloudForms 软件
不可用
不适用
不适用
不适用
服务器运行 Satellite 软件
不可用。要将 Satellite 环境从 RHEL 6 升级到 RHEL 7,请参阅 Red Hat Satellite 安装指南。
不适用
不适用
不适用
注意除非使用 Linux Disk Layout (LDL)的直接访问存储设备(DASD),否则允许升级 64 位 IBM Z 系统。
支持的软件包: 原位升级可用于以下软件包:
-
从基本存储库安装的软件包,例如,如果系统位于 Intel 架构的 RHEL 6 服务器上,则
rhel-6-server-rpms。 Preupgrade Assistant、Red Hat Upgrade Tool 以及升级所需的任何其他软件包。
注意建议您使用安装最少的软件包来执行升级。
-
从基本存储库安装的软件包,例如,如果系统位于 Intel 架构的 RHEL 6 服务器上,则
- 文件系统:文件系统格式是完好的。因此,文件系统有与最初创建时相同的限制。
- 桌面:不允许使用 GNOME 和 KDE 安装进行系统升级。如需更多信息,请参阅 在 Gnome 桌面环境上从 RHEL 6 升级到 RHEL 7 失败。
- 虚拟化:可以使用 KVM 或 VMware 虚拟化升级。不允许在 Microsoft Hyper-V 上升级 RHEL。
- 高可用性:不允许使用高可用性附加组件升级系统。
- 公有云:对于公共云中的 on-demand 实例不允许原位升级。
- 第三方软件包:在使用第三方软件包的系统中不允许原位升级,特别是引导时所需的第三方驱动程序的软件包。
-
/usr目录:在/usr目录位于独立分区的系统上不允许原位升级。如需更多信息,请参阅如果 /usr 位于独立的分区,为什么 Red Hat Enterprise Linux 6 到 7 原位升级会失败?
第 2 章 为 RHEL 6 系统升级做准备 复制链接链接已复制到粘贴板!
这里介绍了在进行到 RHEL 7 的原位升级前需要执行的步骤。
先决条件
- 已确认您的系统设置可以从 RHEL 6 升级到 RHEL 7。如需更多信息,请参阅规划升级。
流程
确定您的系统已注册到Red Hat Subscription Management(RHSM)。
如果您的 RHEL 6 系统注册到 Red Hat Network(RHN),则需要迁移至 RHSM。详情请参阅 将 Red Hat Enterprise Linux 从 RHN 迁移到 RHSM。
确保您可以访问最新的 RHEL 6 内容。如果您使用
yum-plugin-versionlock插件将软件包锁定到一个特定版本,请清除锁定:yum versionlock clear
# yum versionlock clearCopy to Clipboard Copied! Toggle word wrap Toggle overflow 详情请查看 How to restrict yum to install or upgrade a package to a fixed specific package version?。
启用 Extras 软件仓库,其中包含预升级评估和原位升级所需的软件包。
对于 64 位 Intel 构架的服务器版本:
subscription-manager repos --enable rhel-6-server-extras-rpms --enable rhel-6-server-optional-rpms
# subscription-manager repos --enable rhel-6-server-extras-rpms --enable rhel-6-server-optional-rpmsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 对于 IBM POWER,big endian 系统:
subscription-manager repos --enable rhel-6-for-power-extras-rpms --enable rhel-6-for-power-optional-rpms
# subscription-manager repos --enable rhel-6-for-power-extras-rpms --enable rhel-6-for-power-optional-rpmsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 对于 IBM Z 架构:
subscription-manager repos --enable rhel-6-for-system-z-extras-rpms --enable rhel-6-for-system-z-optional-rpms
# subscription-manager repos --enable rhel-6-for-system-z-extras-rpms --enable rhel-6-for-system-z-optional-rpmsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 对于 64 位 Intel 架构中的 HPC Compute 节点变体:
subscription-manager repos --enable rhel-6-for-hpc-node-extras-rpms --enable rhel-6-for-hpc-node-optional-rpms
# subscription-manager repos --enable rhel-6-for-hpc-node-extras-rpms --enable rhel-6-for-hpc-node-optional-rpmsCopy to Clipboard Copied! Toggle word wrap Toggle overflow
安装 Preupgrade Assistant 和 Red Hat Upgrade Tool:
yum install preupgrade-assistant preupgrade-assistant-el6toel7 redhat-upgrade-tool
# yum install preupgrade-assistant preupgrade-assistant-el6toel7 redhat-upgrade-toolCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意如果您的系统无法访问互联网,您可以从 红帽客户门户网站 下载预升级助手和红帽升级工具。如需更多信息,请参阅 如何在离线系统上为从 RHEL 6.10 到 RHEL 7.9 的升级安装预升级评估软件包。
删除所有不支持的软件包组:
yum groupremove group_name
# yum groupremove group_nameCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用不支持的组名称替换 group_name。要查找已安装的组名称的列表,请运行
yum grouplist。检查已知问题,并在适用的地方应用临时解决方案。特别是,在使用多个网络接口的系统中:
- 如果系统配置了静态路由,替换静态路由文件。请参阅 redhat-upgrade-tool 无法重新配置网络接口上的静态路由,导致无法进行升级。
- 如果系统运行 NetworkManager,在运行升级工具前停止 NetworkManager。如需更多信息,请参阅 redhat-upgrade-tool 无法重新配置网络接口,从而导致升级无法进行。
将所有软件包更新到其最新的 RHEL 6 版本:
yum update
# yum updateCopy to Clipboard Copied! Toggle word wrap Toggle overflow 重启系统:
reboot
# rebootCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 执行升级前备份所有数据,以防止潜在的数据丢失。
验证
验证是否已在 Red Hat Subscription Manager 中注册:
yum update
# yum updateCopy to Clipboard Copied! Toggle word wrap Toggle overflow Loaded plug-ins:条目必须包含subscription-manager。验证是否只安装了支持的软件包组:
yum grouplist
# yum grouplistCopy to Clipboard Copied! Toggle word wrap Toggle overflow
第 3 章 评估升级是否可行 复制链接链接已复制到粘贴板!
Preupgrade Assistant 评估您的系统,在系统进行任何更改之前,发现在原位升级过程中可能出现的任何潜在问题。
Preupgrade Assistant 进行以下操作:
- 除了保存相关信息或日志外,您的系统不会有其他任何变化。它不会修改被评估的系统。
- 评估系统以了解可能的原位升级限制,如删除软件包、不兼容的启用功能、名称更改或者在某些配置文件的兼容性问题。
- 提供一个包含评估结果的报告。
- 提供升级后的脚本以解决原位升级后的复杂问题。
您应该多次运行 Preupgrade Assistant。在解决了预升级报告发现的问题后,再次运行 Preupgrade Assistant,以确保在执行升级前已解决了所有关键的问题。
您可以使用以下方法之一查看系统评估结果:
- 在被评估的系统中,本地使用命令行。
- 使用 Web 用户界面(UI)远程通过网络进行远程访问。您可以使用 Web UI 一次查看多个报告。
Preupgrade Assistant 是一个模块化系统。您可以创建自己的自定义模块来评估进行原位升级的可能性。如需更多信息,请参阅如何创建用于从 RHEL 6 升级到 RHEL 7 的自定义 Preupgrade Assistant 模块。
3.1. 使用命令行评估升级的可能性 复制链接链接已复制到粘贴板!
在本地查看 Preupgrade Assistant 报告可确保您不会向网络公开您的系统数据。可使用以下方法在本地查看预升级的评测结果:
- 在命令行的标准输出中查看代码。
- 使用网页浏览器查看详细的 HTML 文件。
当运行没有其它参数的 preupg 命令时,它会在 /root/preupgrade/ 目录中生成 result.html 和 preupgults-*.tar.gz 文件。
先决条件
- 您已完成了为升级准备 RHEL 6 系统中的步骤。
流程
运行 Preupgrade Assistant 对系统执行评估。
preupg
# preupgCopy to Clipboard Copied! Toggle word wrap Toggle overflow 查看每个评估结果条目:
- 检查标准输出的结果代码,以了解有关 评估代码的更多信息,请参阅评估结果代码表。
使用 web 浏览器打开 HTML 文件来更详细地查看评估报告:
web_browser file:///root/preupgrade/result.html
# web_browser file:///root/preupgrade/result.htmlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
-
查看
/root/preupgrade/目录中的 README 文件,以了解有关输出目录结构、退出码以及与预升级助手工具相关的风险解释的更多信息。 在评估过程中,按照报告中的 Remediation 内容解决 Preupgrade Assistant 发现的问题。
重要评估报告可能需要您在完成到 RHEL 7 的原位升级后执行某些任务。记录下这些升级后的任务,并在升级后执行这些任务。
- 再次运行 Preupgrade Assistant。如果没有需要解决的新问题,您可以继续升级您的系统。
3.2. 从 Web UI 获取有关升级可行性的信息 复制链接链接已复制到粘贴板!
基于浏览器的 Preupgrade Assistant 界面可以从多个系统中收集评估报告,并方便地过滤结果。因为升级步骤不允许升级 GNOME 桌面,这个过程为您提供了在远程 GUI 桌面上显示 Preupgrade Assistant 结果的方法。
要远程使用预升级助手 web UI,您必须安装和配置 Apache HTTP 服务器,将文件添加到 /etc/httpd/conf.d/ 目录中,并在系统上运行 httpd 服务以提供内容。
如果您担心将系统数据公开到网络中,或者要避免在要升级的系统中添加内容,您可以使用以下替代方法查看预升级结果:
- 在无需配置 Apache HTTP 服务器的本地系统上使用 Preupgrade Assistant web UI(127.0.0.1)。
-
远程遵循 从命令行评估升级适用性 中描述的流程,将
/root/preupgrade/result.html文件复制到远程系统,并在远程系统的 Web 浏览器中打开 HTML 文件。
先决条件
- 您已完成了为升级准备 RHEL 6 系统中的步骤。
流程
安装 Apache HTTP 服务器和 Preupgrade Assistant Web UI:
yum install httpd preupgrade-assistant-ui
# yum install httpd preupgrade-assistant-uiCopy to Clipboard Copied! Toggle word wrap Toggle overflow 要使预升级助手 web UI 默认通过 TCP 端口 8099 提供给本地系统上的所有网络接口,请将默认的私有 httpd 预升级配置改为公共配置:
cp /etc/httpd/conf.d/99-preup-httpd.conf.public /etc/httpd/conf.d/99-preup-httpd.conf
# cp /etc/httpd/conf.d/99-preup-httpd.conf.public /etc/httpd/conf.d/99-preup-httpd.confCopy to Clipboard Copied! Toggle word wrap Toggle overflow 可选:要使用主机名而不是 IP 地址,如
preupg-ui.example.com来访问预升级助手:-
确保您有一个将
preupg-ui.example.com名称指向您要升级的系统的 DNS CNAME 记录。 -
将
99-preup-httpd.conf文件中的NameVirtualHost行改为NameVirtualHost preupg-ui.example.com:8099。
-
确保您有一个将
如果您有一个防火墙并在 enforcing 模式下运行 SELinux,允许访问 Preupgrade Assistant Web UI 服务所需的端口:
setsebool httpd_run_preupgrade on iptables -I INPUT -m state --state NEW -p tcp --dport 8099 -j ACCEPT
# setsebool httpd_run_preupgrade on # iptables -I INPUT -m state --state NEW -p tcp --dport 8099 -j ACCEPTCopy to Clipboard Copied! Toggle word wrap Toggle overflow 重新启动
httpd服务,以加载新配置。service httpd restart
# service httpd restartCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
在另一个系统上的网页浏览器中,使用 IP 地址(例如
http://192.168.122.159:8099)或主机名(例如http://preupg-ui.example.com:8099)访问 Preupgrade Assistant Web UI 服务。 首次访问 Preupgrade Assistant Web UI 时,决定是否使用在访问 UI 时需要身份验证。
- 要通过身份验证访问 UI,以现有用户身份登录或创建新用户。当您选择 创建新用户时,会自动启用身份验证系统。
- 如果在不需要身份验证的情况下访问 UI,请选择 。
返回到您要升级的系统,并在命令行中运行 Preupgrade Assistant,并自动提交 Preupgrade Assistant Web UI 服务器:
preupg -u http://hostname:port/submit/
# preupg -u http://hostname:port/submit/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例如:
preupg -u http://preupg-ui.example.com:8099/submit/
# preupg -u http://preupg-ui.example.com:8099/submit/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 返回到远程服务器上的网页浏览器并重新载入 Preupgrade Assistant Web UI。
在 Web UI 中,找到并扩展您通过运行 Preupgrade Assistant 生成的评估报告。检查报告中的每个项目,并解决报告的问题。有关评估结果代码的详情,请查看 评估结果代码表。
重要评估报告可能需要您在完成到 RHEL 7 的原位升级后执行某些任务。记录下这些升级后的任务,并在升级后执行这些任务。
- 再次运行 Preupgrade Assistant 并将报告上传到 Web UI。如果没有需要解决的新问题,您可以进行升级。
3.3. 预升级评估结果代码 复制链接链接已复制到粘贴板!
运行 Preupgrade Assistant 时会生成一个评估结果。为评测的每个结果分配一个代码。请参考下表,以了解每个代码的解释以及可能需要执行的操作。
| 结果代码 | 解释 |
|---|---|
| PASS | 未找到问题。 |
| FAIL | 升级风险极大。无法进行原位升级。 |
| NEEDS_ACTION | 升级风险较高。在运行 Red Hat Upgrade Tool 前,必须先解决这个问题。 |
| NEEDS_INSPECTION | 中度或较低的升级风险。升级可能不会失败,但可能会导致系统无法完全正常工作。您必须检查系统的某些部分,如果需要,解决相关的问题。 |
| FIXED | 升级所需的更改已被自动应用。您不需要执行任何操作。 |
| INFORMATIONAL | 有用的信息(但并不关键)。 |
| NOT_APPLICABLE | 评估的软件包没有安装在您的系统中。 |
| ERROR | 工具中发生错误。向红帽支持报告此类问题。 |
| notchecked | 相关的模块还没有被检查。请参阅已知问题以了解更多详细信息。 |
第 4 章 将您的系统从 RHEL 6 升级到 RHEL 7 复制链接链接已复制到粘贴板!
在解决了 Preupgrade Assistant 报告的所有问题后,请使用 Red Hat Upgrade Tool 将系统从 RHEL 6.10 升级到 RHEL 7.9。执行所有必要的安装后任务,以确保您的系统保持最新状态,并防止出现与升级相关的问题。
先在一个安全的、非生产环境的系统中进行测试,然后再在生产环境的系统上进行升级过程。
先决条件
- 您已完成了为升级准备 RHEL 6 系统准备步骤,包括完整系统备份。
- 您已进行了预升级系统评估,并解决了所有报告的问题。详情请参阅评估系统升级的可行性。
流程
在以下位置之一,准备 RHEL 7 软件包的源仓库或介质:
- 从 DVD ISO 创建的安装仓库,您可以从其中下载 RHEL 7 软件包,例如:FTP 服务器或者包含 RHEL 7.9 软件包的 HTTPS 站点。如需更多信息,请参阅准备安装源。
- 挂载安装介质
ISO 镜像
在以上的任何选项中,您都可以配置自定义软件仓库和红帽提供的其他软件仓库。例如: RHEL 6 Base 系统中的特定软件包在 RHEL 7 Extras 软件仓库中提供,它们没有包括在 RHEL 7 DVD 中。
如果您知道您的系统需要的软件包不在 RHEL 7 Base 存储库中,则您可以安装一个单独的 RHEL 7 系统来作为通过 FTP 或 HTTP 提供所需软件包的
yum存储库。要设置升级过程中可以使用的额外软件仓库,请参阅如何创建本地软件仓库用于更新。然后,在
redhat-upgrade-tool命令中使用--addrepo=REPOID=URL选项。重要强烈建议您使用 RHEL 7.9 GA 源存储库来防止升级后引导问题。如需更多信息,请参阅 已知问题。
禁用活跃软件仓库以防止合并来自不同 RHEL 主版本的软件包时出现问题。
安装
yum-utils软件包:yum install yum-utils
# yum install yum-utilsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 禁用活跃的软件仓库:
yum-config-manager --disable \*
# yum-config-manager --disable \*Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如需更多信息,请参阅是否可以安装来自不同 RHEL 版本的软件包。
运行 Red Hat Upgrade Tool 下载 RHEL 7 软件包并准备软件包安装。指定 Red Hat Enterprise Linux 7 软件包的位置:
安装软件仓库
redhat-upgrade-tool --network 7.9 --instrepo ftp-or-http-url --cleanup-post
# redhat-upgrade-tool --network 7.9 --instrepo ftp-or-http-url --cleanup-postCopy to Clipboard Copied! Toggle word wrap Toggle overflow 挂载安装介质
redhat-upgrade-tool --device device_path --cleanup-post
# redhat-upgrade-tool --device device_path --cleanup-postCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果没有指定设备路径,Red Hat Upgrade Tool 会扫描所有挂载的可移动设备。
ISO 镜像
redhat-upgrade-tool --iso iso_path --cleanup-post
# redhat-upgrade-tool --iso iso_path --cleanup-postCopy to Clipboard Copied! Toggle word wrap Toggle overflow 重要在以上提到的三个方法中,您都可以在 redhat-upgrade-tool 命令使用以下选项:
-
--cleanup post:自动删除没有被相应的 RHEL 7 软件包替换的、红帽签名的软件包。推荐选项。如果不使用
--cleanup-post选项,您必须在原位升级后删除所有剩余的 RHEL 6 软件包,以确保您的系统被完全支持。 - --snapshot-root-lv 和 --snapshot-lv: 创建系统卷快照。如果升级失败,需要使用快照来回滚 RHEL 系统。如需更多信息,请参阅将 RHEL 6 升级到 RHEL 7 后的回滚和清理。
-
--cleanup post:自动删除没有被相应的 RHEL 7 软件包替换的、红帽签名的软件包。推荐选项。如果不使用
提示时重启系统。
reboot
# rebootCopy to Clipboard Copied! Toggle word wrap Toggle overflow 根据要升级的软件包数量,这个过程可能需要几小时时间完成。
- 手动执行预升级结果中描述的任何升级后任务。
- 如果您的系统构架是 64 位 Intel,请从 GRUB Legacy 升级到 GRUB 2。如需更多信息,请参阅系统管理员指南。
-
如果在升级的主机上安装了 Samba,请手动运行
testparm工具来验证/etc/samba/smb.conf文件。如果实用程序报告任何配置错误,您必须在启动 Samba 前进行修复。 可选:如果您在运行红帽升级工具时没有使用
--cleanup-post选项,请清理孤立的 RHEL 6 软件包:rpm -qa | grep .el6 &> /tmp/el6.txt rpm -e $(cat /tmp/el6.txt) --nodeps
# rpm -qa | grep .el6 &> /tmp/el6.txt # rpm -e $(cat /tmp/el6.txt) --nodepsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 警告请小心,不要意外删除与 RHEL 7 兼容的自定义软件包。
警告使用
rpm命令删除孤立的软件包可能会破坏某些 RHEL 7 软件包中的依赖项。有关如何 修复这些依赖关系 错误的信息,请参阅修复依赖项错误。将您的 RHEL 7 软件包更新至其最新版本。
yum update reboot
# yum update # rebootCopy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
验证系统已升级到最新版本的 RHEL 7。
cat /etc/redhat-release Red Hat Enterprise Linux Server release 7.9 (Maipo)
# cat /etc/redhat-release Red Hat Enterprise Linux Server release 7.9 (Maipo)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证是否为 RHEL 7 自动重新订阅系统。
yum repolist
# yum repolist Loaded plugins: product-id, subscription-manager repo id repo name status rhel-7-server-rpms/7Server/x86_64 Red Hat Enterprise Linux 7 Server (RPMs) 23,676Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果仓库列表不包含 RHEL 软件仓库,运行以下命令取消订阅系统,重新将系统订阅为 RHEL 7 系统,并添加所需的软件仓库:
subscription-manager remove --all subscription-manager unregister subscription-manager register subscription-manager attach --pool=poolID subscription-manager repos --enable=repoID
# subscription-manager remove --all # subscription-manager unregister # subscription-manager register # subscription-manager attach --pool=poolID # subscription-manager repos --enable=repoIDCopy to Clipboard Copied! Toggle word wrap Toggle overflow
如果在原位升级过程中或之后出现任何问题,请参阅 故障排除 来寻求帮助。
第 5 章 故障排除 复制链接链接已复制到粘贴板!
在从 RHEL 6.10 升级到 RHEL 7.9 后,排除并解决与软件包相关的问题。
5.1. 故障排除资源 复制链接链接已复制到粘贴板!
您可以参考以下故障排除资源。
控制台输出
默认情况下,Pre-upgrade Assistant 只会将级别为错误(error)和严重(critical)的日志信息输出到控制台输出中。要同时打印 debug、info 和 warning 信息,请在 redhat-upgrade-tool 命令中使用 --debug 选项。
日志
/var/log/upgrade.log 文件列出了在升级阶段发现的问题。
报告
/root/preupgrade/result.html 文件列出了在预升级阶段发现的问题。此报告也可以在 web 控制台中获得。如需更多信息,请参阅从 Web UI 评估升级是否适合性。
5.2. 修复依赖关系错误 复制链接链接已复制到粘贴板!
在原位升级过程中,可能会在没有依赖软件包的情况下安装某些软件包。
流程
找出与依赖关系相关的错误:
yum check dependencies
# yum check dependenciesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果该命令没有显示输出结果,则不需要进一步的操作。
-
要修复依赖关系错误,请重新安装受影响的软件包。在这个操作过程中,
yum工具会自动安装缺少的依赖软件包。如果系统中可用的软件仓库未提供所需的依赖软件包,请手动安装这些软件包。
5.3. 安装缺少的软件包 复制链接链接已复制到粘贴板!
从 RHEL 6 升级到 RHEL 7 后可能会缺少某些软件包。这可能会因为以下原因造成:
- 您没有向 Red Hat Upgrade Tool 提供包含这些软件包的软件仓库。手动安装缺少的软件包。
- 某些问题导致无法安装 RPM。在安装缺少的软件包前解决这些问题。
- 因为在升级前服务没有被配置并运行,所以缺少了 NetworkManager。手动安装和配置 NetworkManager。如需更多信息,请参阅开始使用 NetworkManager。
流程
使用以下方法之一查看 RHEL 7 系统缺少哪些软件包:
- 查看升级前报告。
运行以下命令在 RHEL 7 中生成预期软件包列表,并与当前安装的软件包进行比较,以确定缺少哪些软件包。
/root/preupgrade/kickstart/RHRHEL7rpmlist* | grep -v "#" | cut -d "|" -f 3 | sort | uniq
$ /root/preupgrade/kickstart/RHRHEL7rpmlist* | grep -v "#" | cut -d "|" -f 3 | sort | uniqCopy to Clipboard Copied! Toggle word wrap Toggle overflow
使用以下方法之一安装缺少的软件包:
同时查找并安装所有缺少的软件包。这是获取所有缺少的软件包的最快方法。
cd /root/preupgrade bash noauto_postupgrade.d/install_rpmlist.sh kickstart/RHRHEL7rpmlist_kept
# cd /root/preupgrade # bash noauto_postupgrade.d/install_rpmlist.sh kickstart/RHRHEL7rpmlist_keptCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您只需要安装部分缺少的软件包,请单独安装相关的软件包。
yum install package
# yum install packageCopy to Clipboard Copied! Toggle word wrap Toggle overflow
有关您应该在升级的系统上安装的软件包列表的其它文件详情,请查看 /root/preupgrade/kickstart/README 文件以及预升级报告。
5.4. 已知问题 复制链接链接已复制到粘贴板!
从 RHEL 6 升级到 RHEL 7 时已知的问题如下:
- 启用 FIPS 模式后,无法从 RHEL 6 系统原位升级到 RHEL 7
- 如果使用 LDL 格式,在 IBM Z 上的原位升级会失败并导致数据丢失
- 如果系统缺少了特定的软件包,Preupgrade Assistant 会报告 notchecked
- redhat-upgrade-tool 无法重新配置网络接口,从而导致无法进行升级
- redhat-upgrade-tool 无法重新配置网络接口上的静态路由,从而导致升级无法进行
- 为什么如果 /usr 位于独立的分区,Red Hat Enterprise Linux 6 到 7 的原位升级会失败?
- 在 IBM Power(Big Endian)架构上使用多路径卷的系统可能会在原位升级过程中遇到问题,从而导致升级的系统无法启动。要防止这个问题,请不要在此类系统上执行原位升级。(BZ #1704283)
-
如果目标 RHEL 7 存储库包含
kernel-3.10.0-1160.62.1.el7软件包或更新版本,则升级会失败。这会导致系统处于无法引导的状态。要防止这个问题,请使用没有 z-stream 更新的 RHEL 7.9 GA 存储库,或者确保仓库中的 RHEL 7.9 内核早于kernel-3.10.0-1160.62.1.el7软件包。(RHEL-3292)
5.5. 回滚升级 复制链接链接已复制到粘贴板!
如果到 RHEL 7 的原位升级失败,可以使用以下方法之一将以前的 RHEL 6 工作系统恢复到有限的配置中:
- 集成在 Red Hat Upgrade Tool 中的回滚功能。如需更多信息,请参阅将 RHEL 6 升级到 RHEL 7 后的回滚和清理。
- 自定义备份和恢复解决方案,例如 Relax-and-Recover(ReaR)程序。如需更多信息,请参阅 ReaR 文档 以及 Relax and Recover(ReaR)是什么以及如何将其用于灾难恢复?