在阿里云服务器(ECS)上使用 CentOS 系统时,重装系统通常会清除系统盘上的所有数据,但你可以通过以下方法来保存和恢复数据。是否能保留数据取决于你如何操作以及数据存储的位置。
一、数据能否保存的关键点
| 情况 | 是否保留数据 |
|---|---|
| 仅重装系统盘(默认方式) | ❌ 系统盘数据全部丢失 |
| 数据在数据盘(挂载的云盘)上 | ✅ 数据盘不格式化则可保留 |
| 做了快照或镜像备份 | ✅ 可从快照恢复数据 |
二、安全重装并保留数据的方法
✅ 方法1:将重要数据放在「数据盘」
这是最推荐的做法:
-
创建数据盘(如果还没有):
- 在阿里云控制台为 ECS 实例挂载一块新的云盘(如 100GB)。
-
格式化并挂载数据盘:
# 查看新磁盘(如 /dev/vdb) fdisk -l # 创建分区(可选,也可以直接格式化整个盘) parted /dev/vdb mklabel gpt parted /dev/vdb mkpart primary ext4 1MiB 100% # 格式化 mkfs.ext4 /dev/vdb1 # 挂载到目录(如 /data) mkdir /data mount /dev/vdb1 /data # 写入 fstab 自动挂载 echo '/dev/vdb1 /data ext4 defaults 0 0' >> /etc/fstab -
将网站、数据库、代码等存放到
/data目录下。 -
重装系统时:
- 选择「只重装系统盘」
- 不要勾选“释放数据盘”
- 重装后重新挂载数据盘即可访问原数据。
✅ 方法2:重装前做「快照」备份
即使没有数据盘,也可通过快照保护数据:
- 登录 阿里云 ECS 控制台
- 找到你的实例 → 点击「更多」→ 「磁盘与镜像」→ 「创建快照」
- 对系统盘创建快照(例如命名
before-reinstall) - 重装系统(重装后系统盘被覆盖)
- 如需恢复数据:
- 停止实例
- 使用快照回滚系统盘(注意:会覆盖当前系统盘)
- 或基于快照创建自定义镜像,再用镜像创建新实例
⚠️ 注意:快照只能恢复整个磁盘,不能单独提取文件。
✅ 方法3:手动备份到本地或OSS
更灵活的方式:
# 将重要数据打包
tar -czf /tmp/backup.tar.gz /home /etc /var/www /root
# 上传到本地或OSS
# 方式1:scp下载到本地
scp root@your_server_ip:/tmp/backup.tar.gz ./backup/
# 方式2:上传到阿里云OSS(需安装 ossutil)
ossutil cp /tmp/backup.tar.gz oss://your-bucket-name/backups/
重装后再上传回来解压即可。
三、重装系统操作建议(阿里云控制台)
- 登录阿里云 ECS 控制台
- 找到目标实例 → 点击「更多」→ 「实例状态」→ 「停止」
- 停止后 → 「更多」→ 「重置实例」→ 「更换操作系统」
- 选择新的镜像(如 CentOS 7.9)
- 关键设置:
- ✅ 不要勾选“释放数据盘”
- 可选择保留现有数据盘
- 重装完成后启动实例
- 登录后重新挂载数据盘(如
/dev/vdb1到/data)
四、总结:如何做到「重装不丢数据」
| 措施 | 建议 |
|---|---|
| 📁 数据存放位置 | 存放在独立的数据盘 /data |
| 💾 备份策略 | 定期对系统盘打快照 |
| ☁️ 异地备份 | 使用 OSS 存储备份文件 |
| 🔁 重装操作 | 避免格式化数据盘,仅重装系统盘 |
示例:重装后挂载数据盘
# 查看磁盘
lsblk
# 挂载数据盘
mount /dev/vdb1 /data
# 验证数据是否存在
ls /data
如有需要,我可以提供一键备份脚本或自动挂载配置。欢迎继续提问!
CLOUD云