其实并不复杂(
可以像给物理磁盘做恢复那样,把 VMDK 中的数据(包括虚拟机里曾经被删除的文件)再做一次“二次恢复”
流程和工具都跟恢复物理盘类似,R-Studio 一样用,只是多了一个“把 vmdk 虚拟成一块磁盘”的步骤
- 先做物理级恢复(可选,但强烈建议) • 如果原物理盘里 VMDK 文件本身被删除、覆盖或截断了,先用 R-Studio/EaseUS/Recuva 等把整个 VMDK 找回来并拷贝到另一块干净磁盘。 这一步跟普通文件恢复完全一样,扫描 → 勾选 .vmdk → 恢复到安全位置。 恢复出来的 VMDK 必须 ≥ 原文件大小,否则后面挂载会报错。
- 把 VMDK“挂”成一块磁盘
在 Linux 下
用 qemu-nbd
sudo apt-get install qemu-utils
sudo modprobe nbd
sudo qemu-nbd --connect=/dev/nbd0 /path/to/disk.vmdk
sudo fdisk -l /dev/nbd0 # 看分区
sudo mount /dev/nbd0p1 /mnt # 只读挂载示例
用完记得断开:
sudo umount /mnt
sudo qemu-nbd --disconnect /dev/nbd0
在 Windows 下
用 VMware Workstation 或 DiskGenius → 直接“打开虚拟磁盘文件”即可把 VMDK 当一块磁盘读。
如果只想读数据,DiskGenius 的“只读加载”最方便;想继续用 R-Studio 深度扫描,选下一步。
用 R-Studio 做“二次恢复” • 打开 R-Studio → 在左侧驱动器树里会看到一个新出现的“VMware Virtual Disk”或 nbd0 → 右键“扫描”。 * 扫描参数跟物理盘完全一样:文件系统类型、快速/完整、RAW 扫描等。 * 扫描结束后,在“Recognized”或“Extra Found Files”里按文件名/类型筛选曾被删除的文件 → 恢复到另一块磁盘。 * 如果 VMDK 内部有快照链(-delta.vmdk、-00000*.vmdk),R-Studio 会自动识别,可按时间线选最近可用的快照进行解析。
之后可以看业务需要,对恢复出来的文件做哈希校验或其他验证(数据库启动、Unity 打开工程等)
全部确认无误后,把 VMDK 卸载/断开,避免误写。
