用了一段时间阿里云服务器的人,迟早会碰到换系统的情况。原来的 CentOS 7 已经结束常规维护,项目需要更新的 Ubuntu 版本,或者测试环境想换一套干净的系统,都是常见原因。ECS 控制台提供了更换操作系统的功能,操作本身不复杂。问题在于换系统会清空系统盘,准备不足时,丢数据和业务中断都很常见。下面按备份、操作、检查三步,讲讲要注意什么。

换系统之前,先想清楚为什么换
换系统会清空系统盘上的全部内容,所以动手前要先确定目标。常见理由大致有三类:
- 系统版本过旧:CentOS 7 已经结束常规维护,继续用下去有安全风险,新软件也越来越难装。
- 环境要统一:开发、测试和生产用的系统不一致,迁移时很容易撞上依赖冲突。
- 配置难以追溯:服务器被手动改过很多次,没人说得清现在是什么状态,干净地重装有时比一点点查更省事。
如果只是某个软件版本太旧,升级软件或者用容器隔离通常就够了,没必要动整个系统。只有系统层面确实要变,换系统才值得做。
动手前的准备
很多事故其实是前期备份没做够导致的,所以这一步要花足时间。
创建系统盘和数据盘快照
在 ECS 控制台可以分别给系统盘和数据盘创建快照。快照记录的是某个时刻的磁盘状态,换完系统发现不对,可以回滚,或者用快照创建新盘恢复。快照会产生一定费用,但和一次误操作导致的数据损失相比,这笔钱通常花得值。
单独备份业务数据
快照不等于万无一失。数据库文件、上传的图片、日志和配置文件最好各自再备份一份,放到 OSS 或别的地方。以 MySQL 为例,先做逻辑备份导出文件,再把导出文件传到 OSS。即使快照出了问题,数据还能恢复。
记下当前的配置
把以下内容记在一个文档里:公网 IP 和内网 IP、安全组规则、挂载的数据盘、环境变量、定时任务、Nginx 或 Apache 配置、防火墙策略,以及应用的启动方式。重装之后你会一项一项用到它们,记得越细,恢复越快。
确认登录凭证
换系统后实例会使用新的登录凭证。选密码的话,提前设好强密码;用密钥对的话,确认本地私钥能正常使用。凭证丢失是很常见的麻烦,远程办公时尤其容易卡住,因为没人能走到机房去处理。
在控制台换系统
控制台菜单会随版本调整,路径以实际页面为准。大致是进入云服务器 ECS 控制台,找到目标实例,在操作菜单里选择“磁盘和镜像”,再点击“更换操作系统”。有些场景需要先停止实例,按控制台的提示来。
选镜像时,公共镜像够用于大多数通用场景。如果团队已经做过标准化的自定义镜像,直接用它,后面的部署会省很多步骤。
控制台会明确提示系统盘数据将被清空。这一步要看清数据盘的处理方式:数据盘里如果有业务数据,就确认选的是保留数据盘,不要一起释放。
一个迁移例子
某小型电商团队把一台运行了三年的 CentOS 7 服务器换成了 Ubuntu 22.04。业务包括商品展示、订单接口和图片存储,数据库和图片分别放在系统盘与数据盘上。
他们的做法大致如下:
- 提前一天在测试实例上完整走一遍流程,确认应用依赖和 Node.js 版本是否兼容。
- 给系统盘和数据盘分别建快照,同时把数据库导出文件同步到 OSS。
- 挑低峰时段停掉业务,在控制台执行换系统,并选择保留数据盘。
- 重新挂载数据盘,恢复 Nginx 配置和环境变量,逐项检查服务状态。
整个过程大约两小时。问题出在第三步之后:数据盘的挂载点没有写进 /etc/fstab,服务器重启后数据盘不会自动挂载,图片服务因此短暂不可用。他们手动挂载后补写了 fstab,问题才解决。这件事说明,换完之后的检查和换系统本身同样要紧。
换完之后怎么检查
换完系统不等于结束。建议按下面的顺序过一遍:
- 网络:测试公网访问和内网通信,核对安全组规则是否还在。
- 磁盘挂载:用 lsblk 和 df -h 查看数据盘是否挂上,再检查 fstab 写得对不对。重启一次服务器验证最直接。
- 服务:逐个确认数据库、Web 服务和后台任务已经跑起来。
- 安全:打系统补丁,关掉用不到的端口,调整默认账户的策略。
- 监控:云监控和日志采集要重新配置,否则出问题时没人知道。
几个容易踩的地方
先在测试实例上验证,再动生产。只靠一份备份也不稳,快照、数据库导出和应用代码最好分开存放。换系统可能有次数或频率限制,具体规则以阿里云官方文档和控制台提示为准,别等到真要用的时候才发现无法再操作。
换系统后公网 IP 和实例 ID 一般保持不变,但依赖本地缓存或 hosts 文件的服务仍要逐个检查,否则可能出现连不上却查不出原因的情况。
如果只是想回到之前的状态,快照回滚通常比换系统更合适。换系统会从干净的系统开始,快照回滚则是回到某个时间点,两者的用途不同,先想清楚自己需要哪一个。
最后
阿里云换系统的操作步骤并不复杂。备份做得够不够、数据盘怎么处理、换完后查得细不细,基本决定了这次操作的结果。把每一步都当成可以回退的操作来设计,出意外时才不会手忙脚乱。如果这台服务器要长期稳定运行,把这次流程整理成运维手册,下次就能照着做。