换了系统镜像,本质上就是重装系统。
在云厂商的语境里,“更换系统镜像”通常意味着你要把当前实例(ECS/CVM/CCM等)里的数据盘和系统盘都格式化掉,重新刷入一个新的操作系统。这是一个不可逆的操作,所以核心原则只有一条:先备份,再动手。
下面以国内主流云厂商(阿里云、腾讯云、华为云)的通用逻辑为例,讲清楚怎么操作,以及哪些坑必须避开。
一、 核心认知:什么是“更换系统镜像”?
- 系统盘会被清空:C盘(Linux是
/根分区)的所有数据、安装的软件、配置都会消失。 - 数据盘通常保留:大多数云厂商允许你挂载额外的数据盘(Data Disk),这些盘在更换系统镜像时默认不格式化,数据还在。但务必确认你的云厂商策略,有些情况下如果误选“同时格式化数据盘”,那就全完了。
- 公网IP可能变化:如果你没有绑定弹性公网IP(EIP),而是使用普通公网IP,重装后IP通常会变。一定要提前解绑或绑定EIP。
- 自定义镜像 vs 公共镜像:
- 公共镜像:官方提供的标准OS(如Ubuntu 20.04, CentOS 7等)。
- 自定义镜像:你自己之前拍快照做的镜像,里面有你配好的环境。如果你想换回之前的状态,选这个最快。
二、 操作步骤(通用流程)
虽然各厂商控制台界面不同,但逻辑一致:
第一步:停机(Stop Instance)
绝大多数云厂商要求实例处于已停止状态才能更换系统镜像。
- 登录控制台 -> 找到对应实例 -> 点击“停止” -> 等待状态变为“已停止”。
- 注意:不要直接点关机按钮,要用控制台的“停止”功能,确保磁盘数据落盘。
第二步:选择“更换操作系统”或“重装系统”
- 在实例详情页,找到“更多”或“管理”菜单。
- 寻找类似 “更换操作系统”、“重装系统”、“重置密码并重装系统” 的选项。
- 避坑提示:有些厂商把“重置密码”和“重装系统”放在一起,千万别手滑点错。重装系统会有二次确认弹窗,仔细看描述。
第三步:选择新的系统镜像
- 公共镜像:选择你需要的OS版本(推荐Debian/Ubuntu/CentOS/Rocky Linux等长期支持版)。
- 自定义镜像:如果你有之前做好的备份镜像,从列表中选择它。
- 镜像市场:一些厂商提供预装好LNMP、WordPress等的镜像,适合小白快速部署。
第四步:关键设置
- 数据盘处理:勾选“是否格式化数据盘”。强烈建议取消勾选,除非你确定数据盘里的东西都不要了。
- 主机名:可以保持原名,也可以改个新名字。
- 密钥对/密码:输入新的SSH密钥或Root密码。
第五步:确认并执行
- 阅读警告信息,勾选同意协议。
- 点击“确定”或“立即执行”。
- 系统会自动重启,这个过程可能需要5-10分钟。
第六步:验证与恢复
- 实例状态变为“运行中”后,通过新的IP和新密码登录。
- 检查数据盘是否挂载成功,业务服务是否需要重新安装。
三、 不同厂商的具体路径参考
1. 阿里云 (ECS)
- 路径:控制台 -> ECS实例 -> 更多 -> 实例状态 -> 停止。
- 停止后:更多 -> 安全/网络 -> 更换操作系统。
- 注意:阿里云的“更换操作系统”功能比较完善,支持在线更换(部分场景),但最稳妥的还是停机更换。
2. 腾讯云 (CVM)
- 路径:控制台 -> 云服务器 -> 实例列表 -> 选中实例 -> 底部“更多” -> 重装系统。
- 注意:腾讯云的重装系统界面会明确让你选择“公共镜像”或“自定义镜像”,并询问是否格式化数据盘。
3. 华为云 (ECS)
- 路径:控制台 -> 弹性云服务器 -> 实例详情 -> 左侧导航栏“基本信息” -> 更换操作系统。
- 注意:华为云也强调停机操作,且对数据盘的格式化选项非常醒目。
四、 高危场景与解决方案
Q1: 我没备份,现在系统崩了,能救吗?
- 答:如果你没做快照,也没挂载独立数据盘,基本无解。重装系统会覆盖系统盘。
- 补救措施:尝试联系云厂商技术支持,看是否能通过底层救援模式(Rescue Mode)挂载原系统盘进行数据提取。但这不是100%保证成功的,且可能产生费用。
Q2: 我想换系统,但不想丢数据盘里的文件,怎么办?
- 答:
- 最佳实践:在重装前,对数据盘创建快照。这是最安全的保险。
- 重装时,确保不勾选“格式化数据盘”。
- 重装完成后,手动将数据盘挂载到新系统的指定目录(如
/data),然后修改配置文件指向新路径。
Q3: 更换系统后,网站打不开了/服务连不上?
- 原因:
- IP变了:检查是否绑定了EIP。如果没有,更新DNS解析或本地hosts。
- 防火墙规则丢失:新系统是干净的,没有你之前配置的iptables/firewalld规则。需要重新开放端口(80, 443, 3306等)。
- 服务未自启:新系统不会自动启动你之前写的crontab或systemd服务。需要重新配置开机自启。
- 数据库密码忘了:新系统的MySQL/MariaDB是全新安装的,密码是你重装时设置的。不要用旧密码试。
Q4: 能不能在线更换系统(不停机)?
- 答:目前主流云厂商不支持真正的“热切换”系统内核级别的重装。所谓“在线更换”,通常是指利用云厂商的底层技术,在极短时间内完成镜像替换,但对用户感知来说,依然需要经历一次重启和网络中断。为了稳定,强烈建议停机操作。
五、 给开发者的建议(Best Practices)
- 永远不要依赖单机系统盘存储重要数据。所有业务数据都应该放在对象存储(OSS/COS/OBS)、数据库、或独立的云硬盘上。
- 养成定期快照的习惯。特别是重大变更前,拍一个快照只需几秒,却能救命。
- 使用基础设施即代码(IaC)。如果条件允许,用Terraform或Ansible来管理服务器。这样即使系统挂了,重建一台新机器并应用配置脚本,比手动重装+配置快得多,且可重复。
- 测试环境先练手。如果你对某个云厂商的操作不熟悉,先在低配测试机上试试“更换系统”,熟悉流程后再动生产环境。
总结:停机 -> 备份快照 -> 重装系统 -> 不格式化数据盘 -> 恢复配置。按这个流程走,99%的情况都能顺利解决。
云技术博客