先纠正一个核心概念误区:云服务器(ECS/CVM)本身并不直接“更换”操作系统镜像,而是通过“更换系统盘”或“重装系统”来实现。
所谓的“共享标准型 S6”,通常指的是阿里云的 ECS 实例规格族(如 ecs.s6-c1m1.large 等)。这类实例是基于物理机虚拟化出来的,其底层硬件和虚拟化层是固定的。你无法像给 Windows 电脑换个桌面主题那样,在运行中把 CentOS 内核直接切换成 Ubuntu 内核。
正确的操作逻辑是:保留数据盘(如果有),将系统盘卸载/删除,然后重新挂载一个新的 Ubuntu 系统盘镜像。
以下是基于主流国内云厂商(以阿里云为例,腾讯云、华为云逻辑类似)的标准操作流程及关键注意事项:
一、 前置准备(生死攸关,务必执行)
- 备份数据
- 系统盘数据:如果你没有自定义镜像,且系统盘里有重要配置、代码、数据库文件,必须创建快照。这是唯一的后悔药。
- 应用数据:如果网站或服务的静态资源、数据库存储在独立的数据盘上,确保数据盘已挂载且正常读写。
- 确认实例状态
- 确保实例处于“已停止”状态。更换系统盘属于高风险操作,云厂商强制要求停机进行。
- 记录关键信息
- 公网 IP 地址(更换后通常会变,除非你绑定了弹性公网 IP EIP,建议提前绑定 EIP 以保留 IP)。
- 内网 IP 地址(会变)。
- 当前系统的登录密码或 SSH 密钥对。
二、 具体操作步骤
第一步:停止实例
- 登录云控制台。
- 找到目标 ECS 实例。
- 点击“更多” -> “实例和镜像” -> “停止实例”。
- 选择“停机不收费”模式(推荐,节省成本)或普通停机。等待实例状态变为“已停止”。
第二步:更换系统盘(核心步骤)
- 在实例详情页,找到“系统盘”区域。
- 点击“更换系统盘”或“更多”->“磁盘”->“更换系统盘”。
- 注意:部分老旧控制台可能叫“重装系统”,效果一样。
- 选择镜像:
- 在镜像列表中,搜索并选择 Ubuntu。
- 建议选择 长期支持版(LTS),如 Ubuntu 20.04 LTS 或 22.04 LTS,稳定性更好。
- 架构选择:如果你的 S6 实例是 x86_64 架构,选 amd64;如果是 ARM 架构(如倚天710),选 arm64。务必匹配! 选错会导致启动失败。
- 设置新密码:
- 为新的 Ubuntu 系统设置 root 密码或使用密钥对登录。
- 提示:Ubuntu 默认禁止 root 密码远程登录,建议使用 sudo 用户或密钥对。
- 确认订单:
- 阅读风险提示,勾选同意,提交更换请求。
- 此过程可能需要几分钟到十几分钟,取决于磁盘大小和网络状况。
第三步:启动实例并验证
- 系统盘更换完成后,实例会自动重启或需要你手动点击“启动实例”。
- 等待实例状态变为“运行中”。
- 使用新的密码或密钥对,通过 SSH 连接服务器。
ssh ubuntu@<你的公网IP> # 或者使用 root 用户(需在 Ubuntu 安全组或防火墙允许) ssh root@<你的公网IP> - 验证系统版本:
cat /etc/os-release
三、 后续必要配置(新手最容易踩坑的地方)
CentOS 和 Ubuntu 在包管理、服务管理、网络配置上有巨大差异,直接切换后环境是空的,你需要重新部署。
-
更新源与安装基础工具
sudo apt update && sudo apt upgrade -y sudo apt install vim git curl wget net-tools -y -
配置安全组(防火墙)
- 云厂商的安全组规则不会随系统更换而自动迁移。
- 检查是否放行了 22 (SSH)、80 (HTTP)、443 (HTTPS) 以及你业务所需的端口。
- 特别注意:Ubuntu 默认启用
ufw防火墙,如果开启,需手动放行端口。
-
部署应用环境
- Web 服务:Nginx/Apache 需要重新安装和配置。
- 数据库:MySQL/MariaDB/PostgreSQL 需要重新安装。如果你之前有数据盘,记得挂载数据盘并导入之前的数据库备份。
- 运行时:Python, Java, Node.js 等需要重新安装依赖。
-
权限问题
- Ubuntu 默认用户是
ubuntu,不是root。 - 执行命令前加
sudo。 - 如果需要 root 权限,可使用
sudo su。
- Ubuntu 默认用户是
四、 常见问题与避坑指南
| 问题 | 原因与解决方案 |
|---|---|
| 更换后无法 SSH 连接 | 1. 检查安全组是否放行 22 端口。 2. Ubuntu 默认禁用 root 密码登录,尝试用 ubuntu 用户登录。3. 检查是否使用了错误的密钥对。 |
| 系统启动卡在“Waiting for network” | 可能是网卡驱动或 DHCP 问题。S6 实例通常没问题,但如果选了错误架构(ARM vs x86)会直接黑屏。 |
| 数据丢失 | 再次强调:只有系统盘数据会丢失。数据盘不受影响。务必在操作前对系统盘打快照。 |
| 费用问题 | 更换系统盘本身免费,但会产生新系统盘的存储费用。如果原系统是自定义镜像,新系统是公共镜像,无额外镜像费用。 |
五、 更优雅的方案:使用自定义镜像 + 克隆实例
如果你不想折腾重装后的环境配置,可以考虑以下替代方案:
- 制作自定义镜像:在 CentOS 状态下,对当前系统盘创建“自定义镜像”。
- 购买新实例:直接用这个自定义镜像创建一个全新的 ECS 实例(同样选 S6 规格)。
- 在新实例上替换内核:虽然不能直接换内核,但你可以:
- 在新实例上运行 CentOS。
- 通过 Docker 容器化部署应用,这样 OS 差异被屏蔽。
- 或者,在新实例上手动将 CentOS 转换为 Ubuntu(极复杂,不推荐,风险极高,容易搞崩系统)。
结论:
对于大多数用户,“停机 -> 更换系统盘 -> 选 Ubuntu 镜像 -> 启动” 是最简单、最可靠的路径。不要试图在运行中的 Linux 系统里直接“热切换”内核,那是自杀行为。
最后提醒:生产环境操作前,务必、务必、务必 对系统盘创建快照!
云技术博客