如何使用 Elevate 实用程序将 CentOS 7 迁移到 AlmaLinux 8、CentOS Stream 8、Oracle Linux 8、Rocky Linux 8

您可能已经知道,无法在主要版本的 RHEL 衍生产品之间进行迁移。 含义 – 你不能直接从 CentOS 7.x 升级到 CentOS 8.x 版本。 唯一的方法是全新安装。 不再! 您现在可以轻松地从 CentOS 7.x 迁移到您选择的任何 8.x,使用 提升 工具。 本指南说明如何使用 AlmaLinux ELvate 工具将 CentOS 7 迁移到 AlmaLinux 8、CentOS Stream 8、Oracle Linux 8 和 Rocky Linux 8。

什么是提升?

ELevate 是 AlmaLinux 团队开发的开源迁移工具。 它允许您在基于 RHEL 的发行版的主要版本之间轻松顺利地从 7.x 迁移到 8.x 版本。

Elevate 将 Red Hat 的 Leapp 框架与社区创建的库和服务相结合,用于所需的迁移元数据集。

它目前支持从 CentOS 7 迁移到以下操作系统:

  • AlmaLinux 操作系统 8
  • CentOS 流 8
  • 甲骨文 Linux 8
  • 洛基 Linux 8

迁移可以就地完成,这意味着数据和配置文件被保留。 换句话说,所有已安装的应用程序和设置以及数据都将保持不变。 然而,用户是 高度鼓励备份 开始迁移之前的重要数据。

Elevate 是一个开源程序,在 Apache 2.0 许可证。

对于那些想知道的人来说,来自 Elevate 的字母“EL”代表 企业 大号inux.

开始 CentOS 7 迁移之前要记住的事情

  • 如前所述,强烈建议 备份 您的重要数据和设置。
  • 不支持实时迁移。 您的系统将重新启动两次。 确保没有运行任何重要的作业(例如计划备份)。
  • Elevate 仍在开发中。 所以我建议你先在虚拟系统或沙盒环境中彻底测试它,然后再在生产环境中尝试。

我在新安装的 CentOS 7 虚拟机上测试了 Elevate 工具。 迁移顺利且没有错误。 如果您遇到任何问题,请报告给 AlmaLinux 错误跟踪器 和/或 AlmaLinux 聊天迁移频道.

更新 CentOS 7 系统

确保您运行的是最新的 CentOS 7.x 分支。 如果没有,请使用以下命令更新您的 CentOS 系统:

$ sudo yum update
$ sudo yum upgrade

重新启动系统以应用更改:

$ sudo reboot

使用命令检查当前安装的 CentOS 7 版本:

$ cat /etc/centos-release
CentOS Linux release 7.9.2009 (Core)
$ cat /etc/os-release 
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"

CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"
检查 CentOS 版本

如您所见,我的系统运行的是 CentOS 7.9 版本。 这是 7.x 分支中的最新版本。

将 CentOS 7 迁移到 AlmaLinux 8、CentOS 8、Rocky Linux 8 和 Oracle Linux 8

第 1 步:安装 Elevate

安装 elevate-release 使用以下命令在您的 CentOS 7 系统中打包:

$ sudo yum install https://repo.almalinux.org/elevate/elevate-release-latest-el7.noarch.rpm
在 CentOS 7 中安装 Elevate 程序

第 2 步:安装 Leapp 和迁移数据

elevate-release 包提供 勒普 实用程序和将 Enterprise Linux 7.x 迁移到我们选择的任何 Enterprise Linux 8.x 版本所需的数据。

根据您要升级的发行版,您需要安装以下任一软件包:

  • 跳跃数据almalinux
  • 跳跃数据-centos
  • 跳跃数据-oraclelinux
  • 跳跃数据岩石

例如,如果你想 将 CentOS 7 迁移到 AlmaLinux 8,您需要安装以下软件包:

$ sudo yum install -y leapp-upgrade leapp-data-almalinux

将 CentOS 7 迁移到 CentOS 8,安装以下软件包:

$ sudo yum install -y leapp-upgrade leapp-data-centos

将 CentOS 7 迁移到 Oracle Linux 8,安装以下软件包:

$ sudo yum install -y leapp-upgrade leapp-data-oraclelinux

将 CentOS 7 迁移到 Rocky Linux 8,安装以下软件包:

$ sudo yum install -y leapp-upgrade leapp-data-rocky

我们现在已经安装了 leap-upgrade 包和我们要升级的操作系统的迁移数据。

出于本指南的目的,我将 CentOS 7 升级到 AlmaLinux 8。

升级 CentOS 7 到 AlmaLinux 8

第 3 步:开始升级前检查

接下来运行以下命令以检查是否可以升级:

$ sudo leapp preupgrade

这将执行一系列操作并验证是否可以执行升级。

==> Processing phase `configuration_phase`
====> * ipu_workflow_config
        IPU workflow config actor
==> Processing phase `FactsCollection`
====> * scanmemory
        Scan Memory of the machine.
====> * source_boot_loader_scanner
        Scans the boot loader configuration on the source system.
.
.
.
============================================================
                     UPGRADE INHIBITED                      
============================================================

Upgrade has been inhibited due to the following problems:
    1. Inhibitor: Detected loaded kernel drivers which have been removed in RHEL 8. Upgrade cannot proceed.
    2. Inhibitor: Multiple devel kernels installed
    3. Inhibitor: Possible problems with remote login using root account
    4. Inhibitor: Missing required answers in the answer file
Consult the pre-upgrade report for details and possible remediation.

============================================================
                     UPGRADE INHIBITED                      
============================================================

Debug output written to /var/log/leapp/leapp-preupgrade.log

============================================================
                           REPORT                           
============================================================

A report has been generated at /var/log/leapp/leapp-report.json
A report has been generated at /var/log/leapp/leapp-report.txt

============================================================
                       END OF REPORT                        
============================================================

Answerfile has been generated at /var/log/leapp/answerfile
开始升级前检查

在升级前检查结束时,Leapp 实用程序将在 /var/log/leapp/leapp-report.txt 文件。 此文件包含可能的问题和推荐的解决方案。 在这个阶段不会安装任何 rpm 包。

警告:

如果默认的 CentOS 7 不满足迁移的所有要求,升级前检查将失败。 在这种情况下,您需要解决所有问题并重试。

以下修复来自 /var/log/leapp/leapp-report.txt 文件是 强制的,但如果需要,您也可以查看其余部分。

就我而言,我解决了以下问题:

$ 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

我还必须删除额外的内核开发。

列出 CentOS 中已安装的内核:

$ rpm -qa kernel
kernel-3.10.0-1160.45.1.el7.x86_64
kernel-3.10.0-1160.42.2.el7.x86_64

正如您在上面看到的,我的系统中目前安装了两个内核。

使用命令删除旧内核和内核开发并仅保留当前活动的内核:

$ sudo package-cleanup --oldkernels --count=1

解决所有问题后,运行以下命令将 CentOS 7 迁移到您选择的任何 Enterprise Linux 8.x:

$ sudo leapp upgrade
将 CentOS 7 升级到 RHEL 8 衍生产品,例如 AlmaLinux、CentOS Stream、Oracle 和 Rocky Linux 将 CentOS 7 升级到 RHEL 8 衍生产品,例如 AlmaLinux、CentOS Stream、Oracle 和 Rocky Linux

升级完成后,重新启动系统:

$ sudo reboot

一个名为的新条目 ELevate-Upgrade-Initramfs 将出现在 GRUB 菜单中。 系统将自动启动到其中。 您可以在控制台中查看更新过程的进展情况。

将 CentOS 7 迁移到 AlmaLinux 8 将 CentOS 7 迁移到 AlmaLinux 8

升级完成后系统会自动重启。 GRUB 菜单条目将根据操作系统自动更新。

登录系统并验证当前操作系统是您需要的操作系统。

$ cat /etc/os-release

样本输出:

NAME="AlmaLinux"
VERSION="8.4 (Electric Cheetah)"
ID="almalinux"
ID_LIKE="rhel centos fedora"
VERSION_ID="8.4"
PLATFORM_ID="platform:el8"
PRETTY_NAME="AlmaLinux 8.4 (Electric Cheetah)"
ANSI_COLOR="0;34"
CPE_NAME="cpe:/o:almalinux:almalinux:8.4:GA"
HOME_URL="https://almalinux.org/"
DOCUMENTATION_URL="https://wiki.almalinux.org/"
BUG_REPORT_URL="https://bugs.almalinux.org/"

ALMALINUX_MANTISBT_PROJECT="AlmaLinux-8"
ALMALINUX_MANTISBT_PROJECT_VERSION="8.4"
检查 AlmaLinux 版本 检查 AlmaLinux 版本

伟大的! 我们已成功将 CentOS 7 升级到 AlmaLinux 8.4 版本。

清除缓存(可选)

迁移过程中下载的所有包都将保存在缓存中,直到下一次成功事务。 您可以通过执行以下命令来删除缓存的包 sudo 或者 root 用户:

$ sudo dnf clean packages

更新主机名

最后,更新主机名、用户名以匹配 AlmaLinux。

$ sudo hostnamectl set-hostname almalinux8

全部做完! 重新启动系统以使更改生效。

结论

在本指南中,我们了解了如何在 AlmaLinux 开发人员的 ELevate 项目的帮助下将 CentOS 7 升级到 RHEL 8 衍生产品,例如 AlmaLinux、CentOS Stream、Oracle Linux 和 Rocky Linux。

我没想到 CentOS 7 迁移到 RHEL 8 衍生品会这么容易! AlmaLinux 开发人员做了一项值得称道的工作。 无论是错误修复还是功能添加,他们都会迅速介入并进行处理。 他们是第一个发布 CentOS 8 的稳定替代品的公司。他们还提供了一个 Bash 脚本,可以轻松地将现有的 CentOS 8 系统转换为 AlmaLinux 8。有关更多详细信息,请参阅以下指南。

  • 使用 Almalinux-deploy 脚本从 CentOS 8 迁移到 AlmaLinux

资源: