努力
加油

从CentOS切换到Ubuntu如何通过镜像重装阿里云系统?

从 CentOS 迁移到 Ubuntu,最稳妥且高效的方式确实是利用阿里云控制台的“更换操作系统”功能。这本质上是一次底层镜像替换,数据盘通常不受影响(前提是操作前备份好重要数据),但系统盘会被格式化重建。

以下是具体的操作步骤和关键注意事项,按实际执行流程梳理:

1. 前置准备(至关重要)

在执行任何操作之前,请务必完成以下三步,这是防止数据丢失的核心:

  • 创建快照:进入阿里云 ECS 控制台,找到目标实例,对系统盘和数据盘分别创建自定义快照。虽然“更换系统”通常不删除数据盘,但意外总是可能发生,快照是最后的救命稻草。
  • 备份应用数据:CentOS 和 Ubuntu 在软件包管理(yum vs apt)、默认目录结构、服务启动方式(systemd 配置路径差异)上存在细微差别。确保你的 Web 服务、数据库、配置文件等已备份到本地或 OSS 中。
  • 确认实例规格:确保你的 ECS 实例规格支持更换操作系统。大多数通用型、计算型实例都支持,但如果是非常老旧的实例类型或某些特殊定制镜像,可能需要先检查兼容性。

2. 具体操作步骤

  1. 登录阿里云控制台:进入 ECS 实例列表页面。
  2. 停止实例:点击目标实例右侧的【更多】> 【停机】> 【停机并释放公网 IP】(如果不需要保留固定公网 IP)或直接选择【强制停止】。注意:必须完全停止实例才能更换操作系统。
  3. 更换操作系统:
    • 在实例详情页,找到【更多】菜单。
    • 选择【云盘和镜像】> 【更换操作系统】。
  4. 选择新镜像:
    • 在弹出的窗口中,系统会提示你当前系统盘将被格式化,所有数据将丢失(指系统盘)。
    • 在镜像列表中,找到 Ubuntu。
    • 选择合适的版本(如 Ubuntu 20.04 LTS 或 22.04 LTS,推荐长期支持版)。
    • 设置新的 root 密码(或者使用密钥对登录,建议启用密钥对以提高安全性)。
  5. 确认并提交:仔细阅读风险提示,勾选同意,然后点击【确定】。
  6. 等待重启:阿里云会自动进行镜像替换和系统初始化。这个过程通常需要几分钟到十几分钟不等,取决于磁盘大小和网络状况。期间实例状态会显示为“重启中”。

3. 切换后的初始配置与适配

系统重装完成后,你需要重新配置环境以适应 Ubuntu:

  • 连接测试:通过 SSH 客户端使用新的 root 密码或密钥对登录。
  • 更新源:
    sudo apt update && sudo apt upgrade -y

    建议将默认的 Ubuntu 源替换为国内镜像源(如阿里云、清华源),以提速后续软件安装。

  • 安装必要工具:
    CentOS 常用的 vim, wget, curl 等在 Ubuntu 中可能未预装或需要单独安装:

    sudo apt install vim wget curl git net-tools -y
  • 调整防火墙:
    Ubuntu 默认使用 ufw 而非 iptables 直接管理。如果你之前用 firewalld 或 iptables 规则,现在需要改用 ufw 或重新配置 iptables。

    sudo ufw allow 80/tcp
    sudo ufw allow 443/tcp
    sudo ufw enable
  • 服务迁移:
    • Nginx/Apache/MySQL/Redis 等服务需重新安装并配置。
    • 注意 systemd 服务文件的路径和语法可能与 CentOS 略有不同,尤其是自定义脚本时。
    • PHP 版本管理:CentOS 常通过 Remi 源管理多版本 PHP,Ubuntu 则常用 ondrej/php PPA 或官方仓库,安装命令变为 apt install php8.1-fpm nginx mysql-server 等。

4. 常见问题与建议

  • 为什么不用克隆盘?
    如果你希望保留原系统的所有配置和软件,可以考虑使用第三方工具(如 Clonezilla)制作完整镜像,但这种方式在云上操作复杂,且容易因驱动或内核差异导致启动失败。更换操作系统是阿里云官方支持的最安全、最干净的方式。
  • 数据盘挂载问题:
    更换系统后,数据盘通常不会自动挂载。你需要手动编辑 /etc/fstab 或使用 mount 命令重新挂载数据盘,并检查文件系统类型(ext4/xfs)是否兼容。
  • 权限问题:
    Ubuntu 对权限要求更严格,特别是 /var/www 等目录,记得检查用户组归属(www-data:www-data)和权限设置。

总结来说,从 CentOS 切换到 Ubuntu 是一个标准运维动作,核心在于事前备份和事后环境重建。只要严格按照上述步骤操作,整个过程可控且风险极低。