加油
努力

阿里云服务器挂载的云盘不见了怎么找回?

阿里云服务器挂载的云盘“不见了”是常见问题,通常表现为:在系统中无法看到挂载的磁盘、df -h 不显示、lsblk 看不到设备等。但大多数情况下,数据并未丢失,只是未正确挂载或配置出错。以下是排查和找回的步骤:


一、确认云盘是否仍然存在(控制台层面)

  1. 登录阿里云控制台
    访问 https://ecs.console.aliyun.com

  2. 进入「实例与镜像」 → 「云盘」

    • 查看该云盘是否还在?
    • 检查云盘状态是否为 “可用” 或 “使用中”
    • 如果状态是“可用”,说明已从实例卸载;
    • 如果是“使用中”,但系统看不到,则可能是未正确挂载。
  3. 检查云盘是否挂载到正确的实例上

    • 确认该云盘是否被误挂到了其他ECS实例上。

二、检查系统内是否识别到云盘

登录你的ECS服务器,执行以下命令:

# 查看所有块设备
lsblk

# 或者使用 fdisk 列出磁盘
sudo fdisk -l
  • 正常情况下,系统盘是 /dev/vda(或 /dev/xvda),数据盘通常是 /dev/vdb, /dev/vdc 等。
  • 如果 lsblk 中能看到 /dev/vdb 但没有分区或挂载点,说明磁盘存在但未挂载。

三、检查是否已经挂载

# 查看当前挂载情况
df -h

# 查看开机自动挂载配置
cat /etc/fstab
  • 如果 /etc/fstab 中有错误的UUID或设备路径,可能导致挂载失败,甚至系统启动时跳过。
  • 可通过 blkid 命令查看实际设备的UUID:
    sudo blkid

    对比 /etc/fstab 中的UUID是否一致。


四、重新挂载云盘(若磁盘存在但未挂载)

假设你发现 /dev/vdb1 是你要的数据盘:

# 创建挂载目录(例如 /mnt/data)
sudo mkdir -p /mnt/data

# 手动挂载
sudo mount /dev/vdb1 /mnt/data

# 验证是否成功
df -h

⚠️ 注意:如果提示文件系统错误(如 ext4, xfs 错误),可能需要运行 fsck 修复。


五、如果磁盘不在系统中(lsblk 看不到)

可能原因及解决:

  1. 云盘已被卸载或分离

    • 回到阿里云控制台,在「云盘」列表中找到该盘,点击「更多」→「挂载」,选择你的ECS实例重新挂载。
  2. 热插拔后未刷新设备

    • 在Linux中,有时新挂载的云盘不会立即显示,可尝试:
      # 重新扫描SCSI总线(适用于VirtIO驱动)
      echo 1 > /sys/class/scsi_host/host0/scan
      echo 1 > /sys/class/scsi_host/host1/scan
      echo 1 > /sys/class/scsi_host/host2/scan

      然后再次运行 lsblkfdisk -l 查看。

  3. 实例重启后未自动挂载

    • 检查 /etc/fstab 是否配置正确,建议使用 UUID 而不是 /dev/vdb1 这种易变路径。

六、数据恢复(极端情况)

如果磁盘损坏或文件系统崩溃:

  1. 停止实例,创建快照备份

    • 在控制台对云盘创建快照,防止操作失误导致数据丢失。
  2. 挂载到其他ECS实例进行修复

    • 将该云盘挂载到另一台调试用ECS上,检查并修复文件系统:
      sudo fsck /dev/vdb1
  3. 使用专业工具恢复数据

    • testdiskphotorec 等。

七、预防措施

  1. 使用 UUID/etc/fstab 中挂载(通过 blkid 获取);
  2. 挂载后测试 mount -a 是否报错;
  3. 定期创建云盘快照;
  4. 避免直接删除或卸载云盘前未备份。

总结:找回步骤流程图

云盘不见?
   ↓
去控制台检查云盘是否存在 & 是否挂载到本实例
   ↓
登录服务器执行 lsblk / fdisk -l 是否识别
   ↓
→ 若识别但未挂载 → mount 手动挂载
   ↓
→ 若未识别 → 重新扫描 SCSI 或 控制台重新挂载
   ↓
检查 /etc/fstab 是否配置错误(UUID vs 设备名)
   ↓
必要时从快照恢复或挂载到其他机器修复

如果你提供更具体的信息(如:lsblk 输出、df -h 结果、是否重启过、是否修改过 fstab),我可以进一步帮你分析。

🔐 重要提醒:不要随意格式化或初始化磁盘,以免造成数据永久丢失。

云服务器