如何轻松将 CentOS 7 迁移到 Oracle Linux 8
通过我们清晰的专家指南探索从 CentOS 7 到 Oracle Linux 8 的轻松迁移路径,让您的系统升级变得轻而易举。
2024 年 6 月 30 日,CentOS 7 将达到生命周期终止 (EOL)。在此日期之后,操作系统将不再接收安全更新或维护支持。本质上,CentOS 7 在经历了多年的可靠服务后,将从服务器平台阵容中退出。
既然您已经到达这里,您更喜欢 Oracle Linux 作为 CentOS 7 系统的升级路径。恭喜您的选择!这是一个非常可靠的服务器平台,来自一个不言而喻的品牌。
我们还提供了其他两个企业 Linux 发行版 AlmaLinux 和 Rocky 的迁移指南。现在,为了完成这三重奏,本教程将引导您无缝地从 CentOS 7 过渡到 Oracle Linux 8。但在我们采取行动之前,我们需要澄清一些关键点。
CentOS 7 到 Oracle Linux 升级路径
Oracle Linux 的最新版本是 9。但是,本指南重点介绍迁移到版本 8。为什么?因为从 CentOS 7 直接迁移到 Oracle Linux 9 是不可能的。相反,您必须首先升级到 Oracle Linux 8 作为升级到版本 9 之前的中间步骤。为了更清楚地了解,请参阅下图。
如果您想知道,如上图所示,就地升级是指将当前操作系统更新到更新版本,而无需删除现有操作系统并手动重新安装或重新配置系统和应用程序。这意味着您实际上是在操作系统运行时对其进行升级。
澄清了这一点后,我们现在就可以采取行动了。这是开始迁移到 Oracle Linux 8 之前的 CentOS 7 系统。
第1步:进行系统备份
首先,让我们确保您所有重要数据的安全。因此,在执行其他操作之前,我们强烈建议您进行完整的系统备份,以便在出现问题时,您可以将系统及其所有重要数据恢复到之前的状态。
但是,如果您不想采用上述方法,则可以使用如下所示的命令,该命令会将所有更重要的目录及其内容存档在 tar.gz 存档中。
sudo tar czf /centos7-data.tar.gz \
--exclude=/centos7-data.tar.gz \
--exclude=/dev \
--exclude=/mnt \
--exclude=/proc \
--exclude=/sys \
--exclude=/tmp \
--exclude=/media \
--exclude=/lost+found \
/
如果需要,请随意添加更多“–exclude=”参数。最后,该命令创建位于根分区 (/) 上的“centos7-data.tar.gz”文件中所有文件的备份,最好将其传输到另一台计算机或驱动器,以便例如,使用 SCP 命令。
第 2 步:更新所有软件
确保您拥有完全更新的 CentOS 7 系统。打开终端应用程序并键入以下命令:
sudo yum update
如果有任何待处理的更新,请安装它们。结果应该是一个完全最新的系统,没有等待更新的软件包。
步骤 3:将 CentOS 7 迁移到 Oracle Linux 8
在开始之前,我们先简单介绍一下帮助我们进行迁移的工具:Elevate。它由 AlmaLinux 设计,支持 Red Hat Enterprise Linux 分支(Alma、Rocky、Oracle)主要版本之间的迁移,允许用户从 CentOS 7.x 迁移到 RHEL 衍生版本的 8.x 或从 8.x 升级到 9 .x 内相同。如需了解更多信息,请访问该项目的页面。
步骤 3.1:安装 Elevate 工具
升级过程的第一步是在当前的 CentOS 7 系统上安装“elevate-release”软件包。
sudo yum install http://repo.almalinux.org/elevate/elevate-release-latest-el$(rpm --eval %rhel).noarch.rpm
步骤3.2:安装Leapp和迁移数据
迁移过程基于红帽 Leapp(一种旨在促进 RHEL 系统从一个主要版本就地升级到另一个主要版本的工具)和社区创建的包含迁移元数据集的库的组合。那么,让我们安装它们:
sudo yum install leapp-upgrade leapp-data-oraclelinux
当你运行上面的命令时,它会安装超过 30 个额外的包,大部分是 Python 相关的依赖项。 这完全是预料之中的事情。此外,您还会看到一条提示,要求您接受Alma的ELevate存储库的GPG密钥。继续接受它吧。
步骤 3.3:开始升级前检查
下一步是开始升级前检查。以下命令无需进行任何实际更改即可验证服务器兼容性,并创建一个“/var/log/leapp/leapp-report.txt”文件,其中包含可能出现的问题和建议的解决方案:
sudo leapp preupgrade
部分检查很可能会失败,但无需担心!这是正常现象,因为需要提前进行一些调整。
根据官方文档,根据具体情况,以下三个命令可以解决该问题。在我们的例子中,这是第三个命令。运行这三个都没有问题 – 去做吧。
sudo rmmod pata_acpi
echo PermitRootLogin yes | sudo tee -a /etc/ssh/sshd_config
sudo leapp answer --section remove_pam_pkcs11_module_check.confirm=True
当您重新运行升级前检查时,您将看到一份绿色报告,确认一切正常。这意味着您已准备好安全地进行升级。
sudo leapp preupgrade
步骤 3.4:开始从 CentOS 7 到 Oracle Linux 8 的实际迁移
运行以下命令将 CentOS 7 系统迁移到 Oracle Linux 8。
sudo leapp upgrade
请注意,如果您使用外部存储库(例如 EPEL)中的包,升级有时可能会导致错误。一个常见的例子是 EPEL 存储库中的“openssl11-libs”软件包遇到问题。
要解决此问题,请通过执行 yum remove
卸载软件包。然后,重新运行 sudo Leap Upgrade 命令,该命令应该不会出现问题。
此外,现在是喝杯咖啡安顿下来的最佳时机,因为根据您的互联网连接速度,升级过程将需要一些时间。
迁移完成后,系统将提示您重新启动系统。好吧,关键时刻到了!
sudo reboot
重新启动后,您会注意到 GRUB 菜单中弹出一个名为“Elevate-Upgrade-Initramfs”的新选项。您的计算机将自动识别它并在几分钟内自行启动。
由于软件包升级涉及大量后台活动,因此该过程可能需要一段时间。如果您无法访问终端来跟踪这些更改,请耐心等待。根据您的硬件功能和更新的软件包数量,可能需要几分钟到半小时不等。
在最后一个循环中,系统将再次自动重新引导,但这一次,GRUB 将显示 Oracle Linux 8 系统的条目。
此时,是时候给自己一个大大的鼓励了,因为就这样,您已经成功地将系统从 CentOS 7 迁移到 Oracle Linux 8。我也表示热烈祝贺!
步骤 4:检查操作系统版本(可选)
为了确保一切按计划进行,为什么不快速浏览一下操作系统版本呢?此外,您可以更新服务器主机名以匹配 Oracle。
sudo hostnamectl set-hostname oracle8
sudo reboot
cat /etc/oracle-release
安装后步骤
如果您正在使用 EPEL 存储库,我们建议您首先删除它。它仍然针对较旧的 CentOS 7,当您尝试升级系统或安装新软件包时,可能会因兼容性问题而导致错误。要删除它,请执行:
sudo dnf remove epel-release
然后,您可以再次添加它。安装程序将识别您的系统与 RHEL 8 兼容,并将安装适当的 EPEL 8 存储库。
sudo dnf install epel-release
升级您的系统。
sudo dnf update
删除所有与 CentOS 7 相关的软件包。要找到它们,请运行以下命令:
sudo rpm -aq | grep el7
然后打开“/etc/yum.conf”文件并注释掉下面所示的“exclude”行。
sudo nano /etc/yum.conf
最后,要删除它们,请将它们单独列出作为 dnf remove 命令的参数。在我们的例子中,它看起来像这样:
有关 DNF 命令的更深入介绍,我们强烈建议您查阅有关该主题的文章“Linux 中的 DNF 命令行包管理器:完整指南”。
结论
正如本综合指南所述,鉴于 CentOS 7 将于 2024 年 6 月 30 日结束生命周期,从 CentOS 7 迁移到 Oracle Linux 8 提供了一条战略升级路径。
用户可以通过严格按照提供的步骤自信地过渡到更现代且受支持的 Oracle Linux 版本。有关更多信息,请参阅 Oracle 的文档。
我尝试使本指南尽可能简单。感谢您使用它!请在下面的评论框中分享您的想法。