Centos7连续迁移到Rockylinux9(2025更新)
原来维护原有系统时,发现系统还是Centos7版本,在2025的现在为了以后的更新和维护,决定更新到Rocky Linux 9 这样的新版本。CentOS 7 于 2024 年 6 月 30 日停止获取更新。像 Rocky Linux 这样的新选项已经出现,可以帮助使用 CentOS 并需要持续支持的用户。
从一种类型的 Linux 迁移到另一种类型的 Linux 需要仔细规划并逐步执行。首先,您必须从 CentOS 7 切换到 Rocky Linux 8,然后使用 Leapp 框架和 ELevate 项目等工具从 Rocky Linux 8 迁移到 Rocky Linux 9,以简化此过程。
本指南将为您提供清晰易懂的步骤,帮助您从 CentOS 7 迁移到 Rocky Linux 9。
先决条件
将 CentOS 7 迁移到 Rocky Linux 9 的先决条件包括:
- 运行 CentOS 7 的系统。
- 管理员访问权限。
- 互联网连接。
将 CentOS 7 升级到 Rocky Linux 8
本文的下一部分将向您展示如何使用 ELevate 项目和 Leapp 框架从 CentOS 7 迁移到 Rocky Linux 8。
这两个项目可以帮助您将系统从一个基于 RHEL 的作系统移动到另一个作系统。
第 1 步:备份 CentOS 7 数据
在开始迁移过程之前,备份所有重要文件非常重要,这样可以确保在迁移过程中出现任何问题时,您可以恢复数据而不会丢失任何内容。
如果要备份特定文件或目录,可以使用带有 -cvzf 选项的 tar 命令来创建压缩的存档文件。
sudo tar -cvzf /backup/home_user1_backup.tar.gz /home/user1
要备份整个系统,您可以使用带有 --exclude 选项的 tar 命令来排除某些目录(例如,/proc、/sys、/dev 等),然后创建一个压缩的存档文件。
sudo tar -cvzf /backup/full_system_backup.tar.gz --exclude=/proc --exclude=/sys --exclude=/dev --exclude=/backup /
或者,您可以使用 rsync 命令在本地或通过网络在两个位置之间同步文件和目录。
sudo rsync -av --delete /source_directory /backup
如果您的 CentOS 7 系统托管了 MySQL 或 MariaDB 数据库,则可以使用 mysqldump 命令将数据库备份到 SQL 文件。
mysqldump -u username -p dbname > dbname_backup.sql
第 2 步:安装 ELevate 和 Leapp 软件包
要从存储库安装最新版本的 elevate-release 软件包,您可以使用以下命令:
sudo yum install -y http://repo.almalinux.org/elevate/elevate-release-latest-el$(rpm --eval %rhel).noarch.rpm
接下来,安装用于系统升级和迁移的 Leapp 升级工具,以及包含特定于 Rocky Linux 发行版的数据文件的 leapp-data-rocky。
sudo yum install -y leapp-upgrade leapp-data-rocky
步骤 3:运行升级前检查
现在运行以下命令以启动升级前过程,其中 Leapp 通过识别潜在问题、检查兼容性、执行必要的升级前任务和生成升级前报告来为系统升级做准备。
sudo leapp preupgrade
升级前过程可能需要一些时间才能完成。完成后,Leapp 工具将在 /var/log/leapp/ 目录中创建文件,其中包含有关升级过程中可能出现的任何潜在问题的重要文件和信息,以及如何修复这些问题。
sudo ls -l /var/log/leapp/
以下是您应该查看的关键文件:
- answerfile – 此文件包含需要 yes 或 no 答案才能继续升级的问题。
- leapp-report.txt – 此文件列出了升级之前或之后要修复的所有问题和解决方案。
- leapp-preupgrade.log – 此文件显示升级前过程中的完整日志和详细信息。
在升级系统之前,请检查前两个文件并采取任何必要的步骤来解决从 CentOS 7 迁移时的以下常见问题。
1. 移除 pata_acpi 内核模块:
sudo rmmod pata_acpi
2. 更新 /etc/ssh/sshd_config 配置文件以允许 root 登录:
echo PermitRootLogin yes | sudo tee -a /etc/ssh/sshd_config
3. 在 PAM 配置中禁用 pam_pkcs11 模块,使升级过程不中断。
sudo leapp answer --section remove_pam_pkcs11_module_check.confirm=True
4.更多老软件和网络访问问题
去掉不必要的软件仓库,如果能是去掉证书认证也能减少很多错误
修复所有常见问题后,重新运行 pre-upgrade 命令以确认所有问题都已修复:
sudo leapp preupgrade
当不再显示 “Upgrade Inhibited” 消息时,升级已准备就绪。
步骤 4:执行升级
最后,运行 upgrade 命令,该命令将启动升级过程,其中包括下载必要的软件包、应用系统配置更改以及将系统更新到目标版本等任务。
sudo leapp upgrade
等待升级完成。如果它不起作用,请返回前面的步骤并修复升级前检查期间遗漏的任何问题。
升级过程完成后,没有任何问题,重新启动计算机。
reboot
重新启动后,您将在 GRUB 菜单中看到一个名为 ELevate-Upgrade-Initramfs 的条目。
等待 5 秒后,系统将自动启动升级过程。
升级后,系统将再重启两次。重启完成后,您将在 GRUB 菜单中看到一个 Rocky Linux 8 选项,这意味着从 CentOS 7 升级到 Rocky Linux 8 的成功。
现在以 root 用户身份登录并验证版本。
cat /etc/redhat-release
Rocky Linux release 8.9 (Green Obsidian)
第 5 步:升级后步骤
迁移到 Rocky Linux 8 后,您需要清理之前 CentOS 版本留下的所有软件包。
$ sudo rpm -qa | grep el7
sudo rpm -qa | grep elevate
sudo rpm -qa | grep leapp
sudo rpm -qa | grep el7 | xargs sudo rpm -e
sudo rm -fr /root/tmp_leapp_py3
sudo dnf clean all
将 Rocky Linux 8 升级到 Rocky Linux 9
要从 Rocky Linux 8 升级到 Rocky Linux 9,您需要使用相同的 ELevate 存储库和 Leapp 框架。
第 1 步:安装 ELevate 和 Leapp 软件包
首先,安装 elevate-release 软件包,该软件包为系统上安装的特定作系统版本提供最新版本的软件包。
sudo yum install -y http://repo.almalinux.org/elevate/elevate-release-latest-el$(rpm --eval %rhel).noarch.rpm
接下来,运行以下命令以设置排除规则,允许 yum 安装或更新没有任何排除项的所有包。
sudo yum config-manager --save --setopt exclude=''
接下来,安装 leapp-upgrade 和 leapp-data-rocky 软件包,它们提供的功能可促进从一个作系统版本到另一个版本的升级过程。
sudo yum install -y leapp-upgrade leapp-data-rocky
步骤 2:运行升级前检查
现在运行以下命令以启动升级前过程,其中 Leapp 通过识别潜在问题、检查兼容性、执行必要的升级前任务和生成升级前报告来为系统升级做准备。
sudo leapp preupgrade
升级前过程会创建与以前类似的文件,但建议的解决方案不同。查看 answerfile 以查找所有建议的步骤并修复它们,如图所示。
1. 调整 firewalld 的设置。
sudo sed -i "s/^AllowZoneDrifting=.*/AllowZoneDrifting=no/" /etc/firewalld/firewalld.conf
2. 删除不支持的网络设备类型的网络设置文件。
sudo rm /etc/sysconfig/network-scripts/ifcfg-[device_name]
3. 跳过答案文件中的 VDO 设备检查要求。
sudo leapp answer --section check_vdo.no_vdo_devices=True
sudo leapp answer --section check_vdo.confirm=True
修复所有常见问题后,重新运行升级前命令以确认所有内容均已修复。
sudo leapp preupgrade
当不再显示 “Upgrade Inhibited ” 消息时,升级已准备就绪。
步骤 3:执行升级
最后,运行 upgrade 命令,该命令将启动升级过程,其中包括下载必要的软件包、应用系统配置更改以及将系统更新到目标版本等任务。
sudo leapp upgrade
等待升级完成。如果它不起作用,请查看报告是否显示任何有问题的软件包。通常,make-devel 和 rocky-logos 软件包会在升级过程中引起问题。
sudo dnf remove rocky-logos make-devel
删除有问题的软件包后,再次运行升级。
sudo leapp upgrade
升级过程完成后,没有任何问题,重新启动计算机。
reboot
重新启动后,您将在 GRUB 菜单中看到一个名为 ELevate-Upgrade-Initramfs 的条目。
等待 5 秒后,系统将自动启动升级过程。
升级后,系统将再重启两次。重启完成后,您将在 GRUB 菜单中看到 Rocky Linux 9 选项,这意味着从 Rocky Linux 8 升级到 Rocky Linux 9 成功。
启动计算机后,登录并查看迁移进展情况。确保您使用的是正确的作系统。检查日志和旧 OS 版本的任何剩余软件包。您可能希望自行删除或更新它们。
cat /etc/redhat-release
cat /etc/os-release
rpm -qa | grep el8
cat /var/log/leapp/leapp-report.txt
cat /var/log/leapp/leapp-upgrade.log
按照本指南中的步骤作后,您现在已经从 CentOS 7 升级到 Rocky Linux 9。探索有关 CentOS 替代方案的更多信息,以及为什么 Rocky Linux 成为首选之一。