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

CentOS 8 在 2021 年底提前 EOL(停止维护),CentOS 7 将于 2024 年 6 月 30 日正式终止支持(EOL)。这意味着所有 CentOS 镜像(包括阿里云、腾讯云等轻量应用服务器的官方 CentOS 镜像)已停用或即将下线,继续使用将面临无安全更新、高危漏洞无法修复、合规风险及兼容性问题

针对轻量应用服务器(如阿里云轻量、腾讯云轻量、华为云轻量等),由于其通常不支持原地升级操作系统(仅支持重装系统盘),且底层为精简镜像、无完整 GRUB/内核管理能力,直接 centos-upgrade 类工具(如 leappdnf system-upgrade)在轻量服务器上基本不可行或高风险失败

✅ 正确、安全、推荐的迁移路径是:「数据迁移 + 系统重装」(即“换芯不换血”),而非原地升级。

以下是分步实操指南(以迁移到 AlmaLinux 9(推荐,与 RHEL 9 兼容性最佳)为例;Rocky Linux 9 同理):


✅ 一、迁移前准备(务必完成!)

项目 操作说明
1. 备份全部数据 ✔️ 使用 rsynctar 打包 /home/var/www/etc(关键配置)、数据库(MySQL/PostgreSQL dump)、SSL 证书等
bashnsudo tar -czf /root/backup-$(date +%F).tar.gz /home /var/www /etc/nginx /etc/httpd /etc/my.cnf* /var/lib/mysql --exclude='/var/lib/mysql/ib_logfile*' --exclude='/var/lib/mysql/ibtmp1'n
2. 记录关键信息 ✍️ IP、端口、域名、SSL 证书路径、数据库账号密码、服务启动方式(systemd script?supervisor?)、防火墙规则(firewalld/ufw)、时区、locale 设置等。
3. 确认软件兼容性 📌 AlmaLinux 9 默认使用 dnf(非 yum),内核 5.14+,glibc 2.34,Python 3.9
⚠️ 检查是否依赖:旧版 Node.js、自编译 PHP、闭源驱动(如 NVIDIA)、特定内核模块(如 kmod-X_X)→ 提前测试或寻找替代方案。

✅ 二、轻量服务器迁移操作(核心步骤)

⚠️ 注意:轻量服务器不支持“原地升级”,必须重装系统盘!

▶ 步骤 1:停止业务 & 切换 DNS(可选,减少停机时间)

  • 若有域名,可先将 TTL 调低(如 300 秒),后续切换时降低影响。
  • 停止 Web、DB、应用服务:
    sudo systemctl stop nginx httpd mysqld postgresql node-app

▶ 步骤 2:导出并验证备份(本地 or OSS/S3)

# 上传到对象存储(以阿里云 OSS 为例)
ossutil64 cp /root/backup-2024-06-15.tar.gz oss://my-backup/
# 或下载到本地电脑保存

▶ 步骤 3:在轻量控制台「重装系统」

平台 操作路径 推荐镜像
阿里云轻量 控制台 → 实例 → 更多 → 重置系统 → 选择镜像 → AlmaLinux 9.x(官方提供) ✅ 官方支持,预装 cloud-init,自动配置 SSH、网络、时区
腾讯云轻量 控制台 → 实例 → 重装系统 → 应用镜像 → 搜索 AlmaLinuxRocky ✅ Rocky Linux 9 / AlmaLinux 9(需确认镜像状态,部分区域已上架)
华为云轻量 控制台 → 实例 → 重装系统 → 公共镜像 → 选择 AlmaLinux 9 ✅ 已上线(2024 年起全面支持)

🔍 提示:若控制台暂无 AlmaLinux/Rocky 镜像,请:

  • 联系客服申请开通(多数厂商已默认提供);
  • 或使用「自定义镜像」:先在 ECS 创建 AlmaLinux 实例 → 制作自定义镜像 → 导入轻量(部分平台支持);
  • 或临时选用 CentOS Stream 9(RHEL 的上游开发流,非 LTS,仅建议过渡)❌ 不推荐长期使用。

▶ 步骤 4:重装后初始化新系统(AlmaLinux 9)

# 1. 更新系统(首次登录后立即执行)
sudo dnf update -y

# 2. 安装常用工具
sudo dnf install -y epel-release git wget curl vim net-tools htop iftop rsync

# 3. 启用 EPEL + PowerTools(必要扩展源)
sudo dnf config-manager --set-enabled crb  # 替代旧版 powertools
sudo dnf install -y dnf-plugins-core

# 4. 恢复防火墙(firewalld 默认启用)
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

# 5. 恢复时区 & 时间同步
sudo timedatectl set-timezone Asia/Shanghai
sudo systemctl enable --now chronyd

▶ 步骤 5:恢复数据与配置

# 下载备份包(假设已上传 OSS)
ossutil64 cp oss://my-backup/backup-2024-06-15.tar.gz ./

# 解压(谨慎覆盖!建议先比对目录)
sudo tar -xzf backup-2024-06-15.tar.gz -C / --keep-newer-files --numeric-owner

# 重点检查并手动恢复:
# - /etc/nginx/conf.d/*.conf   (Nginx 站点配置)
# - /var/www/html/             (网站文件,注意权限:chown -R nginx:nginx /var/www)
# - MySQL 数据库:
sudo systemctl start mysqld
mysql -u root -p < /root/backup.sql  # 或使用 mysqlpump/mysqldump 恢复

▶ 步骤 6:服务适配与验证

服务 注意事项
Web(Nginx/Apache) AlmaLinux 9 中 nginx 包名不变;Apache 为 httpd,模块语法兼容(但需检查 mod_sslmod_rewrite 是否启用)
MySQL 推荐 mysql80-community-release(官方 MySQL 8.0)或 mariadb-server(默认);注意密码认证插件变更(caching_sha2_password → 可能需 ALTER USER ... IDENTIFIED WITH mysql_native_password
PHP 使用 php-fpm + php-common(EPEL 提供 8.0/8.1/8.2);检查 php.ini 路径(/etc/php.ini)和扩展(/etc/php.d/
SSL 证书 Certbot 兼容:sudo dnf install -y certbot python3-certbot-nginxcertbot --nginx
定时任务 /var/spool/cron/root/etc/crontab 会保留,但需确认 crond 已启用:sudo systemctl enable --now crond

▶ 步骤 7:最终验证与切换

  • curl -I http://your-domain.com → HTTP 200
  • mysql -u app -p -e "SHOW DATABASES;"
  • systemctl list-units --state=failed → 无 failed 单元
  • ✅ 查看日志:journalctl -u nginx --since "1 hour ago"
  • ✅ 手动访问所有功能页面、API、后台、支付回调等
  • 修改 DNS 或负载均衡指向新实例(若已切流)

❌ 为什么不推荐原地升级(如 dnf distro-syncleapp)?

风险项 说明
轻量服务器限制 无完整 initramfs 构建能力、GRUB 不可编辑、dracut 生成失败率高,极易变砖
leapp 工具局限 仅支持 RHEL/CentOS → RHEL 官方路径;Alma/Rocky 未被 leapp 官方认证,社区适配不完善,成功率 <30%
依赖链断裂 CentOS 7 → AlmaLinux 9 跨越两个大版本(7→8→9),glibc、systemd、kernel ABI 不兼容,rpm -Uvh 强制升级大概率导致 yum/dnf 自身损坏
厂商明确反对 阿里云/腾讯云文档均注明:“轻量应用服务器请通过重装系统迁移,不支持原地升级”

✅ 迁移后长期建议

  • 订阅 AlmaLinux/Rocky 官方公告:https://almalinux.org / https://rockylinux.org
  • ✨ 启用 自动安全更新(可选):
    sudo dnf install -y dnf-automatic
    sudo systemctl enable --now dnf-automatic.timer
  • ✨ 使用 Ansible / Shell 脚本固化部署流程,便于下次迁移(如一键安装 LEMP + 恢复备份)
  • ✨ 对生产环境,建议后续迁移到标准云服务器(ECS/CVM),获得更灵活的磁盘、内核、快照管理能力。

如需我为你:

  • ✍️ 生成一份 定制化迁移检查清单(含命令模板)
  • 🐧 提供 AlmaLinux 9 + Nginx + PHP 8.2 + MySQL 8.0 一键部署脚本
  • 📦 编写 rsync 增量备份恢复方案
  • 🌐 输出 各云厂商轻量镜像开通指引截图版

欢迎随时告诉我你的具体环境(云厂商 + 当前 CentOS 版本 + 主要运行服务),我可为你定制交付 👇

祝你迁移顺利,永别 EOL 焦虑!🚀

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