在阿里云更换实例镜像(如从 CentOS 7 升级到 Ubuntu,或重置系统盘)时,系统盘数据会被完全覆盖,而数据盘通常不受影响。为避免重要数据丢失,请严格按以下步骤操作:
✅ 核心原则:先备份,再操作
⚠️ 更换镜像 = 重新初始化系统盘(根磁盘),原有系统文件、配置、应用代码等将永久丢失。
🔒 安全操作流程
1️⃣ 确认磁盘类型与挂载点
- 登录 阿里云控制台 → 进入实例详情页。
- 查看「存储」标签页:
- 系统盘:通常
/dev/vda,挂载为/,更换镜像会清空。 - 数据盘:如
/dev/vdb,挂载为/data等,更换镜像不会自动删除,但仍建议备份。
- 系统盘:通常
2️⃣ 备份关键数据
▶ 系统盘数据(必做!)
-
方法 A:创建自定义镜像(推荐)
# 在控制台 → 实例 → 更多 → 云盘/镜像 → 创建自定义镜像 # 勾选“包含所有云盘”,命名清晰(如 `backup-centos7-20240601`)✅ 优势:完整保留系统+数据盘状态,可一键回滚;支持跨地域复制。
-
方法 B:手动备份重要目录
tar -czf /tmp/config-backup.tar.gz /etc/nginx /etc/mysql ~/project-code /var/www/html scp /tmp/config-backup.tar.gz user@backup-server:/path/💡 注意:避免直接打包整个根分区(可能过大且含临时文件)。
▶ 数据盘数据(强烈建议)
- 即使不更换数据盘,也建议:
- 创建数据盘快照(控制台 → 云盘 → 创建快照)
- 或用
rsync同步到 OSS/其他 ECS:rsync -avz --delete /data/ oss://my-bucket/data-backup/
3️⃣ 执行更换镜像操作
- 控制台 → 实例 → 更多 → 更换操作系统
- 选择新镜像 → 确认设置(密码、密钥对、网络等)
- 务必勾选「保留数据盘」(默认已选,但需二次确认)
- 提交后实例将重启,新系统生效。
4️⃣ 恢复数据与验证
- 登录后立即检查:
- 数据盘是否仍挂载且内容完整:
df -h && ls /data - 自定义镜像中的配置文件是否可用:解压并比对差异
- 服务是否正常启动:
systemctl status nginx mysql
- 数据盘是否仍挂载且内容完整:
- 若发现问题:
- 使用自定义镜像快速回滚:实例 → 更多 → 更换操作系统 → 选择原自定义镜像
- 或通过快照恢复数据盘
🚫 常见误区警示
| 错误做法 | 风险 |
|---|---|
| 未备份直接换镜像 | 系统盘数据永久丢失 |
| 误删数据盘快照/自定义镜像 | 无法恢复 |
| 更换后未检查数据盘挂载状态 | 业务中断 |
| 仅依赖“自动快照”策略 | 快照有保留周期,非即时保护 |
💡 进阶建议
- 开启 自动快照策略(每日/每周),作为最后一道防线。
- 对数据库使用
mysqldump/pg_dump逻辑备份 + binlog 归档。 - 关键配置纳入 Git 版本管理,实现“基础设施即代码”。
📌 总结:系统盘换镜像 = 重装系统,必须提前备份;数据盘虽安全,但生产环境严禁裸奔。
需要我帮您生成一份具体的备份脚本模板或控制台操作截图指引吗?
云小栈