从 CentOS 迁移到 Ubuntu,最稳妥且高效的方式确实是利用阿里云控制台的“更换操作系统”功能。这本质上是一次底层镜像替换,数据盘通常不受影响(前提是操作前备份好重要数据),但系统盘会被格式化重建。
以下是具体的操作步骤和关键注意事项,按实际执行流程梳理:
1. 前置准备(至关重要)
在执行任何操作之前,请务必完成以下三步,这是防止数据丢失的核心:
- 创建快照:进入阿里云 ECS 控制台,找到目标实例,对系统盘和数据盘分别创建自定义快照。虽然“更换系统”通常不删除数据盘,但意外总是可能发生,快照是最后的救命稻草。
- 备份应用数据:CentOS 和 Ubuntu 在软件包管理(yum vs apt)、默认目录结构、服务启动方式(systemd 配置路径差异)上存在细微差别。确保你的 Web 服务、数据库、配置文件等已备份到本地或 OSS 中。
- 确认实例规格:确保你的 ECS 实例规格支持更换操作系统。大多数通用型、计算型实例都支持,但如果是非常老旧的实例类型或某些特殊定制镜像,可能需要先检查兼容性。
2. 具体操作步骤
- 登录阿里云控制台:进入 ECS 实例列表页面。
- 停止实例:点击目标实例右侧的【更多】> 【停机】> 【停机并释放公网 IP】(如果不需要保留固定公网 IP)或直接选择【强制停止】。注意:必须完全停止实例才能更换操作系统。
- 更换操作系统:
- 在实例详情页,找到【更多】菜单。
- 选择【云盘和镜像】> 【更换操作系统】。
- 选择新镜像:
- 在弹出的窗口中,系统会提示你当前系统盘将被格式化,所有数据将丢失(指系统盘)。
- 在镜像列表中,找到 Ubuntu。
- 选择合适的版本(如 Ubuntu 20.04 LTS 或 22.04 LTS,推荐长期支持版)。
- 设置新的 root 密码(或者使用密钥对登录,建议启用密钥对以提高安全性)。
- 确认并提交:仔细阅读风险提示,勾选同意,然后点击【确定】。
- 等待重启:阿里云会自动进行镜像替换和系统初始化。这个过程通常需要几分钟到十几分钟不等,取决于磁盘大小和网络状况。期间实例状态会显示为“重启中”。
3. 切换后的初始配置与适配
系统重装完成后,你需要重新配置环境以适应 Ubuntu:
- 连接测试:通过 SSH 客户端使用新的 root 密码或密钥对登录。
- 更新源:
sudo apt update && sudo apt upgrade -y建议将默认的 Ubuntu 源替换为国内镜像源(如阿里云、清华源),以提速后续软件安装。
- 安装必要工具:
CentOS 常用的vim,wget,curl等在 Ubuntu 中可能未预装或需要单独安装:sudo apt install vim wget curl git net-tools -y - 调整防火墙:
Ubuntu 默认使用ufw而非iptables直接管理。如果你之前用firewalld或iptables规则,现在需要改用ufw或重新配置iptables。sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw enable - 服务迁移:
- Nginx/Apache/MySQL/Redis 等服务需重新安装并配置。
- 注意 systemd 服务文件的路径和语法可能与 CentOS 略有不同,尤其是自定义脚本时。
- PHP 版本管理:CentOS 常通过 Remi 源管理多版本 PHP,Ubuntu 则常用
ondrej/phpPPA 或官方仓库,安装命令变为apt install php8.1-fpm nginx mysql-server等。
4. 常见问题与建议
- 为什么不用克隆盘?
如果你希望保留原系统的所有配置和软件,可以考虑使用第三方工具(如 Clonezilla)制作完整镜像,但这种方式在云上操作复杂,且容易因驱动或内核差异导致启动失败。更换操作系统是阿里云官方支持的最安全、最干净的方式。 - 数据盘挂载问题:
更换系统后,数据盘通常不会自动挂载。你需要手动编辑/etc/fstab或使用mount命令重新挂载数据盘,并检查文件系统类型(ext4/xfs)是否兼容。 - 权限问题:
Ubuntu 对权限要求更严格,特别是 /var/www 等目录,记得检查用户组归属(www-data:www-data)和权限设置。
总结来说,从 CentOS 切换到 Ubuntu 是一个标准运维动作,核心在于事前备份和事后环境重建。只要严格按照上述步骤操作,整个过程可控且风险极低。
云技术博客