CentOS 8 在 2021 年底提前 EOL(停止维护),CentOS 7 也已于 2024 年 6 月 30 日正式结束生命周期(EOL),官方镜像站(vault.centos.org / mirrors.centos.org)已下线或仅保留归档内容,不再提供安全更新和软件包同步。因此,将基于 CentOS 的轻量服务器(如阿里云/腾讯云/华为云轻量应用服务器)迁移到 AlmaLinux 或 Rocky Linux(均为 RHEL 兼容的免费下游发行版,长期支持、社区活跃、企业级稳定)是强烈推荐且可行的方案。
以下是生产环境推荐的、安全可靠的原地迁移(in-place upgrade)操作指南,适用于 CentOS 7 或 CentOS 8(注意:CentOS 8 迁移需先升至 Stream 8 或直接跨代迁移,但更建议 CentOS 8 → Rocky 8 / AlmaLinux 8;CentOS 7 → Rocky 9/AlmaLinux 9 需谨慎评估兼容性,官方不推荐跨大版本原地升级,详见后文说明)。
✅ 前提检查(务必执行!)
# 1. 确认当前系统版本
cat /etc/redhat-release # 或: hostnamectl | grep "Operating System"
rpm -q centos-release
# 2. 检查是否为最小安装(无桌面环境),确保 yum/dnf 正常
yum repolist enabled # CentOS 7
dnf repolist enabled # CentOS 8
# 3. 备份!(关键步骤,不可跳过)
# - 使用云平台快照(最推荐!如阿里云「创建快照」、腾讯云「制作镜像」)
# - 备份重要数据:/etc/, /var/www/, /home/, 数据库等
# - 记录已安装关键软件:rpm -qa | grep -E "(nginx|httpd|mysql|postgresql|redis|docker)" > pkg-list.txt
# 4. 更新现有系统到最新补丁(减少迁移冲突)
sudo yum update -y # CentOS 7
sudo dnf update -y # CentOS 8
# 5. 禁用所有第三方仓库(如 epel、ius、remi),避免冲突
sudo yum-config-manager --disable epel ius remi* 2>/dev/null || true
sudo dnf config-manager --disable epel ius remi* 2>/dev/null || true
🚀 迁移方案选择(按推荐度排序)
| 场景 | 推荐方案 | 说明 |
|---|---|---|
| CentOS 7 → Rocky Linux 7 / AlmaLinux 7 | ✅ 原地升级(高成功率) | 最平滑,内核/ABI 兼容性最佳,支持官方迁移工具 |
| CentOS 8 → Rocky Linux 8 / AlmaLinux 8 | ✅ 原地升级(推荐) | CentOS 8 已 EOL,应尽快迁移;8→8 是安全路径 |
| CentOS 7 → Rocky Linux 9 / AlmaLinux 9 | ⚠️ 不推荐原地升级 | 跨大版本(7→9)存在 glibc、systemd、Python 等重大变更,官方明确不支持,易导致系统不可启动。✅ 强烈建议新建实例 + 数据迁移 |
| CentOS 8 → Rocky Linux 9 / AlmaLinux 9 | ⚠️ 同上,不推荐原地升级 | 应先迁至 8.x 再规划应用层升级 |
🔹 官方立场:
- Rocky Linux:docs.rockylinux.org/guides/migration/ 明确指出 “Only in-place upgrades between the same major version are supported (e.g., CentOS 7 → Rocky Linux 7)”
- AlmaLinux:wiki.almalinux.org/faq/#can-i-upgrade-from-centos-7-to-almalinux-9 → “No, only same-major-version upgrades are supported.”
✅ 方案一:CentOS 7 → Rocky Linux 7(推荐,稳定可靠)
步骤(以 Rocky Linux 7 为例,AlmaLinux 7 类似):
# 1. 安装迁移工具(rocky-tools)
sudo yum install -y epel-release
sudo yum install -y rocky-tools
# 2. 执行迁移(自动备份原 repo、替换为 Rocky 仓库)
sudo rocky-migrate
# 3. 清理缓存并验证
sudo yum clean all
sudo yum makecache
# 4. 检查系统标识
cat /etc/redhat-release # 应显示 "Rocky Linux release 7.x"
uname -r # 内核仍为原 CentOS 内核(可后续 yum update 升级)
rpm -q kernel # 可选:升级内核 sudo yum update kernel
# 5. 重启(可选,建议重启以加载新 repo 和服务配置)
sudo reboot
✅ 成功后:
yum update将从dl.rockylinux.org获取安全更新,完全替代 CentOS。
✅ 方案二:CentOS 8 → Rocky Linux 8(推荐)
# 1. 安装迁移工具(rocky-tools for EL8)
sudo dnf install -y https://dl.rockylinux.org/pub/rocky/8/BaseOS/x86_64/os/Packages/r/rocky-repos-8.10-1.el8.noarch.rpm
sudo dnf install -y rocky-tools
# 2. 执行迁移
sudo rocky-migrate
# 3. 清理并验证
sudo dnf clean all
sudo dnf makecache
# 4. 检查
cat /etc/redhat-release # → "Rocky Linux release 8.x"
💡 替代方式(手动替换 repo):
# 备份原 repo sudo mkdir /etc/yum.repos.d/centos-backup && sudo mv /etc/yum.repos.d/CentOS-* /etc/yum.repos.d/centos-backup/ # 下载 Rocky 8 repo sudo curl -o /etc/yum.repos.d/rocky.repo https://dl.rockylinux.org/pub/rocky/8/BaseOS/x86_64/os/Rocky-BaseOS.repo sudo sed -i 's/$releasever/8/g' /etc/yum.repos.d/rocky.repo sudo dnf update -y
❌ 不推荐方案:CentOS 7 → Rocky Linux 9(原地升级)
- 风险极高:glibc 2.17 → 2.34、systemd 219 → 252、Python 2.7/3.6 → 3.9、内核 3.10 → 5.14+,大量 ABI 不兼容;
dnf system-upgrade在 CentOS 7 上不可用(无dnf-plugin-system-upgrade);- 社区实测失败率 >80%,常见问题:SSH 断连、网络失效、systemd 启动失败、YUM/DNF 崩溃。
✅ 正确做法(CentOS 7 → Rocky 9):
- 新建一台 Rocky Linux 9 轻量服务器(云平台控制台一键创建);
- 迁移数据:
rsync -avz --delete /etc/ /var/www/ /home/ user@new-server:/(排除/proc /sys /dev); - 迁移数据库:
mysqldump/pg_dump导出再导入; - 重新配置服务(Nginx/Apache、防火墙、SELinux 策略);
- 切换 DNS 或弹性 IP,完成割接;
- 旧服务器停机前保留快照,观察 72 小时。
🔧 迁移后必做事项
| 项目 | 操作 |
|---|---|
| 安全更新 | sudo yum update -y(EL7)或 sudo dnf update -y(EL8/9) |
| 检查关键服务 | systemctl list-units --state=failed, journalctl -p 3 -xb |
| 验证网络与 DNS | ping -c3 dl.rockylinux.org, nslookup google.com |
| 检查 SELinux | sestatus, 若 disabled 可考虑启用:sudo setenforce 1 && sudo sed -i 's/SELINUX=disabled/SELINUX=enforcing/' /etc/selinux/config |
| 清理残留 | sudo yum remove centos-release* -y(EL7)或 sudo dnf remove centos-linux-release* -y(EL8) |
| 更新 Grub(可选) | sudo grub2-mkconfig -o /boot/grub2/grub.cfg |
🌐 镜像源提速(国内用户必配)
替换默认源为阿里云/清华源(提升速度):
Rocky Linux 7/8 阿里云镜像:
# Rocky Linux 8 示例(7 类似,把 8 改为 7)
sudo sed -e 's|^mirrorlist=|#mirrorlist=|g'
-e 's|^#baseurl=http://dl.rockylinux.org/$content/|baseurl=https://mirrors.aliyun.com/rocky/|g'
-i.bak /etc/yum.repos.d/rocky*.repo
AlmaLinux 同理(使用 https://mirrors.aliyun.com/almalinux/)
✅ 总结:你的迁移路线图
| 当前系统 | 目标系统 | 方式 | 工具 | 建议 |
|---|---|---|---|---|
| CentOS 7 | Rocky Linux 7 | ✅ 原地升级 | rocky-migrate |
⭐ 最优解,10 分钟完成 |
| CentOS 7 | AlmaLinux 7 | ✅ 原地升级 | almalinux-deploy |
同样成熟,选其一即可 |
| CentOS 8 | Rocky Linux 8 | ✅ 原地升级 | rocky-migrate |
快速止损,避免 EOL 风险 |
| CentOS 7/8 | Rocky/Alma 9 | ❌ 禁止原地 | — | ✅ 新建实例 + 数据迁移(安全第一) |
✅ 最终建议:
- 优先选择 Rocky Linux(由 CentOS 创始人之一 Gregory Kurtzer 领导,社区治理透明)或 AlmaLinux(CloudLinux 公司支持,企业级 SLA);
- 迁移前 务必创建云快照;
- 生产环境建议在低峰期操作,并准备回滚方案(快照还原);
- 迁移后订阅 Rocky Linux Security Announcements 或 AlmaLinux Security Advisories。
如需我为你生成 定制化迁移脚本(自动检测版本 + 一键执行)、或提供 Docker/宝塔/LNMP 环境专项适配指南,欢迎随时告知你的具体环境(cat /etc/redhat-release 输出 + 主要运行服务),我可进一步协助 👇
祝你迁移顺利,系统长治久安!🚀
CDNK博客