阿里云ECS更换操作系统,本质替换系统盘,数据盘数据保留。但要分清,更换系统盘和重装系统不是一回事。重装系统只是重置系统环境,操作系统版本不变;更换系统盘支持CentOS切换Ubuntu,或是Linux切换Windows,旧系统盘会被释放,里面全部数据清空。操作第一步不是打开控制台,优先做好备份。
先把数据保住,再动手
系统盘内所有内容都会丢失,软件、自定义配置、存储文件全部清空。创建快照是简单稳妥的备份方式,快照后续用来恢复数据。只靠快照不够稳妥,网站源码、数据库导出文件、Nginx和PHP配置文件,最好额外下载保存到本地。快照仅备份系统盘,数据盘默认保留,也建议给数据盘创建快照,增加一层保障。

备份完成停止实例。实例处于运行状态无法更换系统盘,实例列表点击停止,状态变更为已停止再继续。按量付费实例如果开启节省停机模式,停止实例选择普通停机模式,否则更换系统后实例可能启动失败。
控制台里点几下的事
登录阿里云控制台,打开ECS实例列表,找到目标实例进入详情页。右上角全部操作菜单找到磁盘和镜像选项,点击更换操作系统。选择更换系统盘,页面弹出风险提示,勾选我已知晓风险继续。
下一步挑选新镜像。公共镜像提供CentOS、Ubuntu、Windows Server等系统,之前创建的自定义镜像也可以选用。选定镜像设置登录密码,Linux系统支持绑定密钥对,Windows默认管理员账号administrator。确认页面查看数据盘保留状态,默认配置无需修改。
确认提交等待任务执行,一般耗时15到30分钟。实例状态变更为正在更换操作系统,任务完成实例自动启动。
换完第一件事是挂数据盘
数据盘数据保留,但新操作系统不会继承旧系统挂载配置,需要重新挂载。Linux系统SSH远程连接,执行lsblk查看数据盘设备名,常见/dev/vdb。新建挂载目录例如/data,执行mount /dev/vdb1 /data临时挂载。想要永久挂载修改/etc/fstab文件,blkid查询磁盘UUID,写入UUID开头配置,执行mount -a校验配置无报错。
Windows系统操作简单,远程桌面登录,打开磁盘管理,找到数据盘,执行联机、初始化,分配盘符即可。
几个容易踩的坑
跨系统切换存在地域限制。Linux转Windows或者Windows转Linux仅中国大陆地域支持。香港、新加坡这类海外节点只能同类型系统互换,Linux换Linux,Windows换Windows。Linux更换Windows,实例主机名字符不能超过15位,超出限制无法提交更换,需要提前修改实例主机名。
更换系统盘时可以扩容系统盘,只能调大容量,不能缩小。扩容部分单独计费,更换操作系统本身不收费,公共镜像免费,付费镜像以及扩容才产生费用。
旧系统盘快照不能回滚到新系统盘,但快照可以用来生成自定义镜像,后续新建实例使用。旧系统盘配置的自动快照策略,更换系统盘之后失效,完成操作重新配置快照策略。
最后提醒,更换系统前确认业务程序兼容新系统。程序依赖特定版本PHP、MySQL,新系统默认版本可能不一致,更换完成还要重新搭建调试运行环境。更换系统只是手段,保证业务正常运行才是目的。