在阿里云 ECS 中,不能直接“切换”操作系统镜像(即不能像换衣服一样原地更改 OS)。你必须通过 “更换操作系统” 功能来实现,这本质上是 重装系统。
⚠️ 重要警告:
- 数据会丢失! 更换操作系统会清空系统盘(通常是
/dev/vda或/dev/vda1)上的所有数据。 - 建议操作前备份: 务必先对系统盘创建快照,或将重要数据迁移到云盘、OSS 或其他存储介质。
✅ 正确步骤:从 CentOS 切换到 Ubuntu
第一步:备份数据
-
创建系统盘快照
- 登录 阿里云控制台
- 进入 ECS 实例列表 → 找到目标实例 → 点击 更多 > 云盘和镜像 > 创建快照
- 选择 系统盘,创建快照(用于紧急恢复)
-
备份关键数据
- 手动备份网站文件、数据库、配置文件等
- 可导出到 OSS、NAS 或另一台服务器
-
记录当前配置
- 记录已安装的软件、服务、防火墙规则、SSH 密钥等
- 记录 IP 地址、域名绑定、安全组规则等
第二步:停止实例(推荐)
虽然阿里云支持“不停机更换系统”,但为了数据安全,建议先停止实例:
- 在 ECS 控制台选中实例
- 点击 更多 > 实例状态 > 停止
- 等待实例状态变为 已停止
第三步:更换操作系统
- 在 ECS 控制台选中该实例
- 点击 更多 > 云盘和镜像 > 更换操作系统
- 在弹出页面中:
- 操作系统类型:选择 Ubuntu
- 版本:选择你需要的版本(如 Ubuntu 20.04 LTS / 22.04 LTS)
- 密码/密钥:设置新的 root 密码或使用 SSH 密钥对
- 确认提示:仔细阅读警告,勾选同意条款
- 点击 确定
📌 注意:更换过程中实例会自动重启,时间取决于磁盘大小和网络速度,通常几分钟到十几分钟。
第四步:启动并验证
- 实例更换完成后,状态会变为 运行中
- 使用新的 root 密码或 SSH 密钥登录
- 验证:
cat /etc/os-release # 应显示 Ubuntu 信息
第五步:恢复数据和配置
- 挂载数据盘(如果有独立数据盘)
lsblk # 查看磁盘 mount /dev/vdb1 /mnt # 示例:挂载数据盘 - 恢复备份数据
- 将之前备份的网站文件、数据库等拷贝回来
- 重新安装必要软件
sudo apt update sudo apt install nginx mysql-server php-fpm ... - 恢复服务配置
- 重新配置 Nginx/Apache、MySQL、PHP 等
- 恢复防火墙规则(UFW 或 iptables)
- 测试服务是否正常
- 访问网站、检查数据库连接、日志等
第六步:安全加固(可选但推荐)
# 更新系统
sudo apt update && sudo apt upgrade -y
# 启用 UFW 防火墙
sudo ufw allow ssh
sudo ufw enable
# 禁用 root 远程登录(建议改用普通用户 + sudo)
sudo nano /etc/ssh/sshd_config
# 修改 PermitRootLogin no
sudo systemctl restart sshd
🔁 替代方案:如果不想重装系统
如果你希望保留原系统数据,可以考虑以下方案:
| 方案 | 说明 |
|---|---|
| 克隆到新实例 | 创建一台新的 Ubuntu ECS 实例,将数据迁移过去,然后替换旧实例 |
| 容器化迁移 | 将应用打包成 Docker 镜像,在新 Ubuntu 实例上运行 |
| 双系统并行过渡 | 新 Ubuntu 实例上线后,逐步迁移流量,旧 CentOS 实例保留一段时间作为备用 |
📝 总结
| 步骤 | 操作 |
|---|---|
| 1 | 备份系统盘快照 + 重要数据 |
| 2 | 停止实例(推荐) |
| 3 | 控制台 → 更换操作系统 → 选择 Ubuntu |
| 4 | 等待完成,启动实例 |
| 5 | 登录验证,恢复数据和配置 |
| 6 | 安全加固,测试服务 |
如有任何问题,欢迎继续提问!
云小栈