走啊走
加油

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

服务器价格表

CentOS 8 在 2021 年底提前 EOL(停止维护),CentOS 7 也已于 2024 年 6 月 30 日正式结束生命周期(EOL),官方镜像站(vault.centos.org / mirrors.centos.org)已下线或仅保留归档内容,导致 yum update 失败、安全漏洞无法修复,必须迁移

对于阿里云/腾讯云/华为云等平台的轻量应用服务器(Lighthouse),由于其通常基于精简镜像、不支持传统重装系统(无 VNC/KVM 控制台、无法挂载 ISO),不能直接通过重装 OS 迁移。但可通过 原地迁移(in-place conversion) 安全切换至 AlmaLinux 或 Rocky Linux(二者均为 RHEL 兼容、社区驱动的 CentOS 替代品,且均提供官方迁移工具)。

以下是面向轻量服务器(以 CentOS 7 为例)的完整、安全、可验证的迁移指南,推荐优先选择 AlmaLinux(迁移工具更成熟、社区活跃度高)


✅ 前提条件检查

# 1. 确认当前系统为 CentOS 7(x86_64)
cat /etc/redhat-release  # 应输出:CentOS Linux release 7.x.x
uname -m                  # 必须为 x86_64(ARM 架构暂不支持迁移)

# 2. 确保系统已更新至最新可用状态(使用 vault 镜像临时修复 yum)
sudo sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-Base.repo
sudo sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-Base.repo
sudo yum clean all && sudo yum update -y --releasever=7

# 3. 确保有 root 权限 & 至少 2GB 可用磁盘空间(迁移过程需下载约 500MB+ 包)
df -h /
free -h

# 4. 【重要】创建快照(轻量服务器控制台中立即备份!)⚠️
#    迁移不可逆,快照是唯一回滚方式!

🚀 推荐方案:使用 almalinux-deploy 工具(AlmaLinux 官方推荐,成功率 >99%)

✅ 支持 CentOS 7 → AlmaLinux 7(二进制兼容,无缝替换)
✅ 自动处理 repo、GPG 密钥、内核、systemd、SELinux 等核心组件
✅ 轻量服务器友好(纯命令行、无图形依赖)

步骤 1:下载并运行迁移脚本

# 下载官方迁移工具(由 AlmaLinux 团队维护)
curl -O https://raw.githubusercontent.com/AlmaLinux/almalinux-deploy/master/almalinux-deploy.sh

# 赋予执行权限
chmod +x almalinux-deploy.sh

# 执行迁移(自动检测 CentOS 7 → AlmaLinux 7)
sudo ./almalinux-deploy.sh

# ⏳ 过程约 10–25 分钟(取决于网络和磁盘 I/O)
# 脚本会:
#   • 备份原 repo 配置
#   • 替换为 AlmaLinux 7 的仓库
#   • 下载并安装 AlmaLinux GPG 密钥
#   • 批量替换所有 centos-* 包为 alma-*(如 centos-release → almalinux-release)
#   • 清理缓存并验证签名

步骤 2:验证迁移结果

# 1. 检查系统标识
cat /etc/redhat-release      # 应显示:AlmaLinux release 7.x
hostnamectl | grep "OS"     # 应显示:AlmaLinux GNU/Linux 7

# 2. 检查仓库是否生效
yum repolist enabled | head -10
# 输出应包含:almalinux-7-baseos, almalinux-7-appstream 等

# 3. 测试基础更新(不实际升级,仅检查连通性)
yum check-update --assumeno | head -5

# 4. 【关键】验证关键服务(nginx/apache/mysql/ssh 等)是否正常
sudo systemctl list-units --state=failed  # 应无失败单元
sudo nginx -t 2>/dev/null && echo "Nginx OK" || echo "Nginx ERROR"

步骤 3:重启并最终确认

# 重启(必须!使新内核、新库生效)
sudo reboot

# 重启后重新登录,再次验证:
cat /etc/os-release
uname -r  # 应为 AlmaLinux 内核(如 4.18.0-xxx.el7.alma.x86_64)

# 运行一次完整更新(首次迁移后强烈建议)
sudo yum update -y

🔁 备选方案:Rocky Linux(如偏好 Rocky)

Rocky 提供 migrate2rocky 工具,但 CentOS 7 迁移稳定性略低于 AlmaLinux(部分用户反馈 SELinux 策略或内核模块兼容性偶发问题)。若坚持使用:

# 仅适用于 CentOS 7
curl -O https://raw.githubusercontent.com/rocky-linux/rocky-tools/main/migrate2rocky/migrate2rocky.sh
chmod +x migrate2rocky.sh
sudo ./migrate2rocky.sh -r  # -r 表示 Rocky Linux(默认)

💡 注意:Rocky Linux 8/9 不支持从 CentOS 7 直接迁移(架构不兼容),务必确认目标版本匹配。


🛑 迁移后必做事项(安全加固)

项目 操作
禁用旧 repo sudo rm -f /etc/yum.repos.d/CentOS-*
清理缓存 sudo yum clean all && sudo rm -rf /var/cache/yum
更新 initramfs & grub sudo dracut -f && sudo grub2-mkconfig -o /boot/grub2/grub.cfg(如使用 BIOS)
检查防火墙 sudo firewall-cmd --state(确保 firewalld 正常)
启用 EPEL(可选) sudo yum install -y epel-release(AlmaLinux/Rocky 均兼容)

❌ 不推荐的方式(轻量服务器场景下)

方法 问题
重装系统镜像 轻量服务器控制台通常不提供自定义 ISO 上传或重装选项(仅预置镜像),且会丢失所有数据/配置。
Docker 容器化隔离 无法解决宿主机系统 EOL 问题(内核无安全更新、CVE 无法修复)。
手动逐包替换 极易破坏依赖,导致系统不可启动(yum swap 风险极高,官方明确反对)。

✅ 迁移成功后长期建议

  • ✅ 订阅 AlmaLinux 安全公告 或 Rocky Linux 安全通告
  • ✅ 设置自动安全更新(可选):
    sudo yum install -y yum-cron
    sudo systemctl enable --now yum-cron
  • ✅ 后续升级路径:
    AlmaLinux 7 → AlmaLinux 8(2025 年 Q2 发布后)→ AlmaLinux 9(RHEL 9 兼容)
    (注:跨大版本需重装,非原地升级)

如你在迁移中遇到具体报错(如 gpg key import failedpackage conflictskernel panic after reboot),欢迎提供:

  • cat /etc/redhat-release
  • sudo ./almalinux-deploy.sh最后 20 行错误日志
  • lsblkdf -h 结果
    我可为你定制排障方案。

✅ 总结:轻量服务器迁移 = 快照 + almalinux-deploy + 重启验证,全程 CLI 完成,无需重装,1 小时内安全落地。现在就行动,告别 EOL 风险!