CentOS镜像停用后,轻量服务器如何迁移到AlmaLinux或Rocky Linux?

CentOS 8 在 2021 年底提前 EOL(停止维护),CentOS 7 将于 2024 年 6 月 30 日正式终止支持(EOL)。因此,将基于 CentOS 的轻量服务器(如阿里云/腾讯云/华为云轻量应用服务器)迁移到社区驱动、RHEL 兼容的替代发行版(如 AlmaLinuxRocky Linux)是必要且推荐的安全升级路径。

⚠️ 重要前提:
仅支持原地迁移(in-place upgrade)到同主版本(如 CentOS 7 → Rocky Linux 7 / AlmaLinux 7)
不支持跨大版本迁移(如 CentOS 7 → Rocky Linux 9)或直接升级内核+用户空间混合版本
不支持从已 EOL 的 CentOS 8 升级(因无官方迁移路径,建议重装)
✅ 轻量服务器通常为纯净系统(无重度定制),适合自动化迁移。

以下是安全、可验证、生产环境可用的迁移指南(以 CentOS 7 → Rocky Linux 7 为例,AlmaLinux 同理,仅命令略有差异):


✅ 一、迁移前准备(必做!)

  1. 备份整机快照
    • 在云平台控制台创建系统盘快照(阿里云/腾讯云均支持),这是回滚的最后防线。
  2. 确认当前系统状态
    cat /etc/redhat-release     # 应显示 CentOS Linux release 7.x
    uname -r                    # 记录内核版本(如 3.10.0-1160.el7.x86_64)
    df -h                       # 确保根分区剩余空间 ≥ 2GB(迁移需临时空间)
    yum update -y && reboot     # 升级至 CentOS 7 最新补丁(避免兼容性问题)
  3. 禁用可能冲突的第三方仓库(如 EPEL、Remi、IUS)
    yum repolist enabled | grep -E "(epel|remi|ius)" && yum-config-manager --disable epel* remi* ius*
  4. 安装必要工具
    yum install -y yum-utils rpmconf python3-pip wget curl

✅ 二、选择迁移目标(Rocky Linux 7 vs AlmaLinux 7)

维度 Rocky Linux 7 AlmaLinux 7
开发者 Rocky Enterprise Software Foundation (RESF) CloudLinux Inc.(更早发布,生态成熟)
官方迁移脚本 migrate2rocky(官方推荐) almalinux-deploy(官方推荐)
更新频率 极其接近 RHEL(通常 1–3 天延迟) 同上,长期稳定
推荐选择 首选(社区活跃,文档完善,阿里云/腾讯云官方镜像站已收录) 同样可靠,企业用户较多

✅ 本文以 Rocky Linux 7 为主流程演示(AlmaLinux 步骤见文末对比表)。


✅ 三、执行迁移(CentOS 7 → Rocky Linux 7)

▶ 方法 1:使用官方 migrate2rocky(推荐 ✅)

# 1. 下载并验证脚本(确保 HTTPS 安全下载)
curl -O https://raw.githubusercontent.com/rocky-linux/rocky-tools/main/migrate2rocky/migrate2rocky.sh
chmod +x migrate2rocky.sh

# 2. 【关键】预检查(不修改系统,仅报告风险)
sudo ./migrate2rocky.sh -r -v

# 3. 执行迁移(自动处理 repo 切换、包替换、grub 更新等)
sudo ./migrate2rocky.sh -r

# ⏳ 过程约 15–30 分钟(取决于网络和软件包数量),全程无需交互

✅ 迁移后自动:

  • 替换 /etc/yum.repos.d/ 中所有 centos-*rocky-* 仓库;
  • centos-releaserocky-release
  • 重装核心包(glibc, systemd, kernel, yum 等)保持 ABI 兼容;
  • 更新 GRUB 引导项,保留旧 CentOS 内核(可选启动);
  • 清理残留 CentOS 包(如 centos-logos, centos-indexhtml)。

▶ 方法 2:手动迁移(仅限高级用户/调试需要)

# 替换仓库(备份原文件)
sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
sudo curl -o /etc/yum.repos.d/Rocky-Base.repo https://mirrors.rockylinux.org/mirrorlist?arch=x86_64&repo=BaseOS-7

# 导入 GPG key
sudo rpmkeys --import /etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial

# 清理缓存并替换发行版包
sudo yum clean all
sudo yum distro-sync --releasever=7 --disablerepo="*" --enablerepo="rocky-base,rocky-updates,rocky-extras" -y

# 重装关键元包(强制覆盖)
sudo yum reinstall rocky-release -y
sudo yum update -y

✅ 四、迁移后验证与收尾

# 1. 验证系统身份
cat /etc/os-release
# 应显示:NAME="Rocky Linux"、VERSION="7 (Green Obsidian)"

# 2. 检查仓库是否生效
yum repolist enabled | grep -E "(rocky|base|updates)"

# 3. 验证关键服务(nginx/apache/mysql/php等)
sudo systemctl list-units --type=service --state=running | grep -E "(httpd|nginx|mysqld|php-fpm)"

# 4. 测试 YUM 功能
sudo yum install -y htop && echo "✅ yum works"

# 5. 【重要】更新内核并重启(启用新 Rocky 内核)
sudo yum update kernel -y
sudo reboot

# 6. 重启后再次验证
uname -r    # 应为 rocky 开头内核(如 4.18.0-477.13.1.el7_9.x86_64)

✅ 五、AlmaLinux 7 迁移(快速对照)

步骤 Rocky Linux 7 AlmaLinux 7
官方脚本 migrate2rocky.sh -r almalinux-deploy.sh -r(GitHub)
下载命令 curl -O https://raw.githubusercontent.com/rocky-linux/rocky-tools/... curl -O https://raw.githubusercontent.com/AlmaLinux/almalinux-deploy/main/almalinux-deploy.sh
仓库地址 https://mirrors.rockylinux.org/... https://mirrors.almalinux.org/...
GPG Key RPM-GPG-KEY-rockyofficial RPM-GPG-KEY-AlmaLinux

💡 AlmaLinux 迁移命令示例:

curl -O https://raw.githubusercontent.com/AlmaLinux/almalinux-deploy/main/almalinux-deploy.sh
chmod +x almalinux-deploy.sh
sudo ./almalinux-deploy.sh -r

⚠️ 六、常见问题与避坑指南

问题 原因与解决方案
迁移后 SSH 断连 检查 firewalld 规则是否重置(sudo firewall-cmd --permanent --add-service=ssh);确认 sshd 未被停用(systemctl is-active sshd
网站 502/503 错误 检查 PHP-FPM/Nginx 配置路径是否变更(Rocky 7 默认仍为 /etc/php-fpm.d/www.conf,通常不变);重启服务:sudo systemctl restart php-fpm nginx
MySQL 启动失败 Rocky/Alma 使用 mysql-community-server(与 CentOS 7 一致),但若之前装了 mariadb,需确认 mariadb-server 是否仍存在(yum list installed | grep mariadb
自定义 RPM 包报依赖错误 迁移后部分第三方包(如某些商业软件)需重新编译或联系厂商提供 Rocky/Alma 兼容版;临时方案:--skip-broken--setopt=obsoletes=0
无法访问新仓库(404) 检查 /etc/yum.repos.d/ 中仓库 baseurl 是否含 $releasever(应为 7 而非 $releasever);手动替换为 7

✅ 七、后续建议(加固与运维)

  • ✅ 启用自动安全更新(可选):
    sudo yum install -y yum-cron
    sudo systemctl enable --now yum-cron
  • ✅ 配置监控:使用 netdata 或云平台自带监控,观察 CPU/内存/磁盘变化;
  • ✅ 定期审计:sudo auditctl -s + aureport --summary(如需合规要求);
  • ✅ 长期规划:Rocky Linux 7 支持至 2029 年 6 月(与 RHEL 7 一致),届时需升级至 Rocky 9(RHEL 9 兼容)。

📌 总结:一键迁移决策树

graph TD
A[当前系统] -->|CentOS 7| B[备份快照 → 运行 migrate2rocky.sh]
A -->|CentOS 8| C[❌ 已 EOL,无安全迁移路径 → 建议重装 Rocky 8/9 或 Alma 8/9]
A -->|CentOS Stream| D[✅ 可直接切换为 Rocky Stream / Alma Stream]
B --> E[验证服务 + 重启]
E --> F[✅ 迁移完成:享受免费、稳定、RHEL 兼容的未来]

如需我为你:

  • ✅ 生成完整可执行的迁移脚本(含错误处理和日志记录)
  • ✅ 提供Docker 容器化迁移方案(隔离测试)
  • ✅ 编写Ansible Playbook实现批量迁移多台轻量服务器
  • ✅ 解决你遇到的具体报错(贴出 migrate2rocky.sh 输出日志即可)

欢迎随时补充你的环境细节(如云厂商、CentOS 版本、已安装软件栈),我会为你定制优化方案。🚀

未经允许不得转载:CLOUD云枢 » CentOS镜像停用后,轻量服务器如何迁移到AlmaLinux或Rocky Linux?