在阿里云 CentOS 系统重装(即“重置系统盘”)时,系统盘(/dev/vda1)会被完全格式化并覆盖,所有数据将永久丢失。因此,“避免丢失重要数据”的核心原则是:重装前主动备份,重装后恢复;而非依赖重装过程保留数据。
以下是完整、安全的操作指南(分步骤 + 关键提醒):
✅ 一、重装前:必须完成的数据保护措施
1. 明确区分系统盘与数据盘
| 类型 | 设备名示例 | 是否会被重装删除 | 说明 |
|---|---|---|---|
| 系统盘 | /dev/vda(含 /, /boot, /root 等) |
✅ 会彻底清空 | 重置系统盘操作默认只影响此盘 |
| 数据盘 | /dev/vdb, /dev/vdc 等(需手动挂载) |
❌ 不会被删除(除非勾选“同时释放数据盘”) | 关键!确保重要数据已迁移至此并正确挂载 |
👉 立即检查:
# 查看所有磁盘及挂载点
df -hT
lsblk -f
# 确认哪些目录(如 /data, /home, /var/www)挂载在非系统盘上
2. 对系统盘上的重要数据做离线备份
即使有数据盘,以下内容常存于系统盘,极易被忽略:
/home/*(用户文件、网站配置、数据库账号)/etc/(网络配置、SSH密钥authorized_keys、Nginx/Apache 配置、防火墙规则)/var/www/或/usr/share/nginx/html/(网站代码)/var/lib/mysql/(若 MySQL 数据库存于系统盘 —— ⚠️ 极危险!应迁移至数据盘)- 自定义脚本、证书(
/etc/letsencrypt/)、License 文件等
| ✅ 备份方式(任选其一,推荐组合使用): | 方式 | 操作命令/说明 | 优点 | 注意事项 |
|---|---|---|---|---|
| OSS 备份(推荐) | ossutil cp /home/ oss://my-bucket/backup/home/ -r |
阿里云内网上传快、持久、可设生命周期 | 提前安装 ossutil,配置 AK | |
| 快照备份(系统盘) | 控制台 → 云服务器 → 磁盘 → 创建快照 | 一键还原整个系统盘(含 OS),适合紧急回滚 | 快照按容量和时间收费;创建需几分钟,期间勿重启 | |
| SCP/FTP 导出到本地 | scp -r user@your-ip:/home /local/backup/ |
完全自主可控 | 网络慢时耗时长,大文件建议压缩:tar -zcf home.tar.gz /home |
|
| Rsync 到另一台 ECS | rsync -avz --delete /home/ user@172.x.x.x:/backup/ |
增量同步高效 | 需目标机已配置免密登录 |
🔔 重要提醒:
- 不要依赖“重装时保留 /home”等选项 —— 阿里云控制台无此功能(区别于部分物理服务器或自建虚拟机)。
- 若使用
yum update或dnf upgrade升级系统,不属于“重装”,数据可保留 —— 但这是升级,不是重装。
3. 迁移数据库至数据盘(强烈建议)
MySQL 默认安装在 /var/lib/mysql(系统盘),重装必丢!
✅ 正确做法:
# 1. 停止 MySQL
sudo systemctl stop mysqld
# 2. 创建数据盘挂载点(如 /data/mysql)
sudo mkdir -p /data/mysql
sudo chown mysql:mysql /data/mysql
# 3. 迁移数据(假设数据盘已挂载到 /data)
sudo rsync -av /var/lib/mysql/ /data/mysql/
# 4. 修改 MySQL 配置(/etc/my.cnf)
[mysqld]
datadir=/data/mysql
socket=/data/mysql/mysql.sock
# 5. 更新 socket 路径(/etc/my.cnf 中添加或修改)
[client]
socket=/data/mysql/mysql.sock
# 6. 启动并验证
sudo systemctl start mysqld
mysql -e "SHOW VARIABLES LIKE 'datadir';"
✅ 二、重装中:控制台操作关键避坑点
在阿里云控制台执行【重置系统盘】时:
- ✅ 务必确认:未勾选“同时释放数据盘”(默认不勾选,但请二次确认!)
- ✅ 选择正确的 镜像版本(如 CentOS 7.9 / CentOS 8 / Alibaba Cloud Linux 3)
- ✅ 设置强密码或选择 SSH 密钥对(重装后原 SSH 密钥失效!需重新绑定)
- ❌ 不要点击“重置实例”或“更换系统盘”以外的按钮(如“释放实例”会销毁全部资源)
💡 提示:重装后公网 IP 默认保留(按量付费实例),但内网 IP 可能变更(经典网络)或需重新绑定(VPC 网络中弹性网卡)。
✅ 三、重装后:快速恢复服务
-
重新挂载数据盘(如果之前已卸载)
# 查看磁盘 lsblk # 挂载(假设数据盘为 /dev/vdb1,挂载点 /data) sudo mkfs.ext4 /dev/vdb1 # ⚠️ 仅首次需要!重装后数据盘未格式化,切勿重复执行! sudo mount /dev/vdb1 /data # 写入 /etc/fstab 实现开机自动挂载(参考阿里云文档) echo "/dev/vdb1 /data ext4 defaults 0 0" | sudo tee -a /etc/fstab -
恢复配置与数据
- 从 OSS/本地恢复
/etc/配置(注意权限:chown root:root /etc/nginx/) - 恢复网站代码到
/var/www/ - 重启服务:
systemctl restart nginx mysqld firewalld
- 从 OSS/本地恢复
-
重建 SSH 访问
- 若用密码登录:用新密码连接
- 若用密钥:控制台重新上传公钥,或手动追加到
/root/.ssh/authorized_keys
🚫 绝对禁止的操作(会导致数据丢失)
- ✖️ 直接点击“重置系统盘”而不备份
- ✖️ 将 MySQL、网站数据、Git 仓库放在
/root或/home下且未备份 - ✖️ 重装前未确认数据盘是否已挂载并写入
/etc/fstab - ✖️ 重装后未及时挂载数据盘就启动服务(导致服务找不到路径而报错)
✅ 最佳实践总结(一句话版)
把所有业务数据、数据库、配置文件、网站代码,全部迁移到独立的「数据盘」并挂载;系统盘仅保留操作系统;重装前对系统盘关键配置做快照+OSS双备份;重装后挂载数据盘 + 恢复配置即可秒级上线。
如需我帮你生成:
- 自动化备份脚本(含时间戳、OSS上传、日志记录)
- MySQL 迁移详细 checklist
/etc/fstab安全挂载模板
欢迎随时告诉我,我可以为你定制 👇
祝你重装顺利,零数据丢失! 🌟
云小栈