结论:数据通常还在,但需要手动重新挂载才能访问。
云服务器重做系统(重装操作系统)时,默认操作仅会格式化并重置系统盘(通常是 /dev/vda 或类似设备),而数据盘(如 /dev/vdb, /dev/vdc 等)的数据和分区表在底层存储上通常会被完整保留。
不过,由于新系统的磁盘标识符、文件系统类型或挂载点配置可能与旧系统不同,你需要按照以下步骤确认并恢复数据:
1. 为什么数据还在?
云服务商的重装机制本质上是替换了系统盘的镜像文件。只要你在控制台没有勾选“删除所有数据盘”或“释放数据盘”的选项,数据盘对应的底层云硬盘(Cloud Disk)就不会被格式化或删除,因此里面的文件依然完好无损。
2. 必须执行的操作:重新挂载
虽然数据在,但新系统启动后,数据盘处于未挂载状态,你无法直接通过路径(如 /data)访问它们。你需要登录服务器进行以下操作:
A. 确认磁盘存在
使用 lsblk 或 fdisk -l 命令查看磁盘列表。
lsblk
# 或者
fdisk -l
你应该能看到除了系统盘(通常显示为 vda/sda)以外的其他磁盘(例如 vdb/sdb)。
B. 检查分区与文件系统
如果重装前没有对数据盘进行过特殊分区操作,通常可以直接挂载。如果不确定,先尝试查看文件系统类型:
blkid
这会显示每个分区的 UUID 和文件系统类型(如 ext4, xfs 等)。
C. 创建挂载点并挂载
假设你的数据盘是 /dev/vdb1,你想挂载到 /data:
- 创建目录:
sudo mkdir -p /data - 临时挂载测试:
sudo mount /dev/vdb1 /data - 验证数据:
进入该目录 (cd /data),检查文件是否都在。
D. 设置开机自动挂载(重要)
为了防止下次重启后再次丢失挂载,需要将配置写入 /etc/fstab。
- 获取 UUID(从步骤 B 中复制):
# 示例:UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx - 编辑 fstab 文件:
sudo vim /etc/fstab - 添加一行(注意格式:
UUID 挂载点 类型 选项):UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /data ext4 defaults 0 0(注:如果你的文件系统是 xfs,请将 ext4 改为 xfs)
- 测试配置是否正确:
sudo mount -a如果没有报错,说明配置成功。
⚠️ 特殊情况提醒
- 加密数据盘:如果原数据盘使用了加密(如 LUKS),重装后你可能需要输入密码或使用密钥解密才能挂载。
- LVM 逻辑卷:如果原数据盘使用了 LVM 逻辑卷,重装后可能需要重新扫描物理卷(
pvscan)并激活卷组(vgchange -ay),然后挂载逻辑卷。 - RAID 阵列:如果数据盘之前组建了软 RAID,新系统可能无法自动识别,需要手动重建或导入 RAID 信息。
总结建议:在重做系统前,如果条件允许,最稳妥的方式是在控制台对数据盘进行快照备份。重做系统后,按照上述步骤重新挂载即可找回数据。
CLOUD云枢