在阿里云上如何将CentOS更换为AlmaLinux或Rocky Linux?

在阿里云 ECS 实例上,官方并不支持直接通过控制台“一键切换”操作系统内核或发行版。CentOS、AlmaLinux 和 Rocky Linux 属于不同的系统镜像(Image),底层文件系统结构、包管理器(yum/dnf)配置以及系统初始化脚本均不相同。

因此,“更换系统”的本质是:数据备份 -> 重建实例/重装系统 -> 数据恢复。

以下是安全、合规且低风险的实操方案,分为 推荐方案(重装法) 和 进阶方案(迁移法)。


⚠️ 核心原则

  1. 先备份,后操作:任何系统变更前,必须确保数据可回滚。
  2. 不要尝试在线升级内核到另一个发行版:从 CentOS 7/8 直接 rpm -Uvh 安装 Alma/Rocky 的包会导致系统崩溃,这是不可逆的错误操作。
  3. 云厂商限制:阿里云不允许跨发行版的平滑过渡,必须重新挂载系统盘或新建实例。

✅ 推荐方案:利用自定义镜像 + 重装系统(最稳妥)

此方法适用于大多数场景,风险最低,操作直观。

第一步:创建自定义镜像(备份当前状态)

  1. 登录 阿里云 ECS 控制台。
  2. 找到你的 CentOS 实例。
  3. 停止实例(建议停机以避免数据不一致)。
  4. 右键点击实例 → 磁盘和镜像 → 创建自定义镜像。
    • 勾选“系统盘”和“数据盘”。
    • 等待镜像创建完成(通常几分钟)。

💡 此镜像包含你当前的系统配置、软件环境等,可作为紧急回滚依据。

第二步:准备 AlmaLinux 或 Rocky Linux 镜像

  1. 在阿里云镜像市场中搜索 AlmaLinux 或 Rocky Linux。
    • 目前阿里云官方镜像市场已提供 AlmaLinux 8/9 和 Rocky Linux 8/9 的公共镜像。
    • 若未找到,也可使用社区提供的可信镜像(需自行验证哈希值)。
  2. 记录目标镜像 ID 或名称。

第三步:重装系统盘(关键步骤)

  1. 确保实例处于已停止状态。
  2. 右键点击实例 → 更多 → 实例状态 → 重置密码(可选,但建议设置新密码)。
  3. 右键点击实例 → 磁盘和镜像 → 更换操作系统。
    • 选择新的镜像:AlmaLinux 或 Rocky Linux。
    • 选择实例规格(保持与原 CentOS 一致,避免性能波动)。
    • 确认重置系统盘。

📌 注意:此操作会格式化系统盘,所有安装在系统盘上的软件和数据将丢失。数据盘不受影响。

第四步:恢复数据与配置

  1. 启动新系统的 Alma/Rocky 实例。
  2. 挂载之前保留的数据盘(如果有的话)。
  3. 从自定义镜像中提取数据(可通过临时挂载镜像方式)或通过备份文件恢复业务数据。
  4. 重新安装必要软件(使用 dnf install 而非 yum,因为 Alma/Rocky 默认使用 dnf)。

🛠 进阶方案:全新实例迁移(最适合生产环境)

如果你希望最小化停机时间,或原系统过于陈旧难以维护,建议采用“平行迁移”。

步骤概览:

  1. 创建新 ECS 实例:

    • 地域、可用区尽量与原实例相同。
    • 选择 AlmaLinux 或 Rocky Linux 作为初始镜像。
    • 配置相同的安全组规则、公网 IP(可申请弹性公网 IP 绑定)。
  2. 同步数据:

    • 使用 rsync 命令从旧 CentOS 实例同步数据到新 Alma/Rocky 实例:
      rsync -avz --progress /path/to/data root@new_almalinux_ip:/path/to/destination
    • 或使用阿里云 OSS 中转大体积数据。
  3. 迁移应用配置:

    • 导出数据库(mysqldump/pg_dump)。
    • 在新实例上安装对应服务并导入数据。
    • 复制 Nginx/Apache/PHP 等配置文件,并根据 Alma/Rocky 的路径差异进行调整(如 /etc/httpd/conf.d/ vs /etc/nginx/conf.d/)。
  4. 切换 DNS 或测试域名:

    • 修改 DNS 解析指向新实例 IP。
    • 进行功能测试。
    • 确认无误后,释放旧 CentOS 实例。

❌ 绝对禁止的操作

  • 不要尝试在运行的 CentOS 系统中直接执行 dnf install almalinux-release:这不会改变基础系统,反而可能破坏依赖关系。
  • 不要手动替换 /etc/yum.repos.d/ 下的 repo 文件就期望完成转换:内核模块、initramfs、glibc 版本差异会导致无法启动。
  • 不要跳过备份:一旦系统盘被重置,无备份则数据永久丢失。

🔍 注意事项(针对 AlmaLinux/Rocky Linux)

  1. 包管理器变化:

    • CentOS 8 之前用 yum,之后虽兼容但推荐 dnf。
    • AlmaLinux 和 Rocky Linux 完全继承 RHEL 生态,使用 dnf 更稳定。
    • 示例:sudo dnf update -y
  2. SELinux 策略:

    • 新系统默认启用 SELinux,部分旧应用可能需要调整上下文或暂时设为 permissive 模式调试。
  3. 防火墙配置:

    • 使用 firewalld 管理端口,确保开放所需服务端口(如 80, 443, SSH 等)。
  4. 驱动兼容性:

    • 阿里云 ECS 内置了通用内核模块,Alma/Rocky 的标准内核即可正常驱动云主机硬件,无需额外安装专有驱动。

✅ 总结

方案 适用场景 难度 风险 推荐指数
自定义镜像 + 重装系统盘 单台服务器,数据量不大,允许短暂停机 低 中(需手动恢复数据) ⭐⭐⭐⭐⭐
新建实例 + 数据迁移 生产环境,高可用要求,复杂应用栈 中 低(新旧并行验证) ⭐⭐⭐⭐⭐
在线转换系统 —— 高 极高(系统崩溃) ❌ 禁止

最终建议:
对于绝大多数用户,“创建自定义镜像备份 → 新建同规格 AlmaLinux/Rocky 实例 → 同步数据” 是最安全、最专业的做法。既避免了系统盘重置带来的混乱,又能充分测试新系统的稳定性后再切换流量。

未经允许不得转载:云知道CLOUD » 在阿里云上如何将CentOS更换为AlmaLinux或Rocky Linux?