加油
努力

阿里云CentOS系统重装时如何避免丢失重要数据?

在阿里云 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 updatednf 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';"

✅ 二、重装中:控制台操作关键避坑点

在阿里云控制台执行【重置系统盘】时:

  1. 务必确认:未勾选“同时释放数据盘”(默认不勾选,但请二次确认!)
  2. ✅ 选择正确的 镜像版本(如 CentOS 7.9 / CentOS 8 / Alibaba Cloud Linux 3)
  3. ✅ 设置强密码或选择 SSH 密钥对(重装后原 SSH 密钥失效!需重新绑定)
  4. 不要点击“重置实例”或“更换系统盘”以外的按钮(如“释放实例”会销毁全部资源)

💡 提示:重装后公网 IP 默认保留(按量付费实例),但内网 IP 可能变更(经典网络)或需重新绑定(VPC 网络中弹性网卡)。


✅ 三、重装后:快速恢复服务

  1. 重新挂载数据盘(如果之前已卸载)

    # 查看磁盘
    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
  2. 恢复配置与数据

    • 从 OSS/本地恢复 /etc/ 配置(注意权限:chown root:root /etc/nginx/
    • 恢复网站代码到 /var/www/
    • 重启服务:systemctl restart nginx mysqld firewalld
  3. 重建 SSH 访问

    • 若用密码登录:用新密码连接
    • 若用密钥:控制台重新上传公钥,或手动追加到 /root/.ssh/authorized_keys

🚫 绝对禁止的操作(会导致数据丢失)

  • ✖️ 直接点击“重置系统盘”而不备份
  • ✖️ 将 MySQL、网站数据、Git 仓库放在 /root/home 下且未备份
  • ✖️ 重装前未确认数据盘是否已挂载并写入 /etc/fstab
  • ✖️ 重装后未及时挂载数据盘就启动服务(导致服务找不到路径而报错)

✅ 最佳实践总结(一句话版)

把所有业务数据、数据库、配置文件、网站代码,全部迁移到独立的「数据盘」并挂载;系统盘仅保留操作系统;重装前对系统盘关键配置做快照+OSS双备份;重装后挂载数据盘 + 恢复配置即可秒级上线。

如需我帮你生成:

  • 自动化备份脚本(含时间戳、OSS上传、日志记录)
  • MySQL 迁移详细 checklist
  • /etc/fstab 安全挂载模板
    欢迎随时告诉我,我可以为你定制 👇

祝你重装顺利,零数据丢失! 🌟

云服务器