FileFix Ultimate
简体中文

如何从 VMDK 或 QCOW2 虚拟机磁盘中恢复已删除的文件

在虚拟机内删除的文件,通常仍保存在宿主机上的虚拟磁盘文件中,就像在物理硬盘上一样。先关闭虚拟机,把它的文件夹复制到安全的位置,再用支持该格式的恢复工具直接打开 VMDK 或 QCOW2 文件。这样无需启动虚拟机,就能扫描客户机的 NTFS、FAT 或 ext4 文件系统,并把找到的文件保存到宿主机。

最后更新:

现在该怎么做

  1. 关闭虚拟机,让客户机停止向磁盘写入。
  2. 把整个虚拟机文件夹复制到另一块驱动器,包括小的描述文件和所有区段文件。
  3. 在已删除文件恢复中打开 .vmdk 描述文件或 .qcow2 文件,扫描客户机分区。
  4. 把恢复的文件保存到宿主机上的文件夹,而不是放回虚拟机里。

操作步骤

  1. 停止虚拟机

    正常关闭客户机或直接断电,不要挂起后继续使用。运行中的客户机会不断把日志、更新和交换数据写入虚拟磁盘,这些写入可能落在已删除文件所在的位置。

  2. 复制虚拟机文件夹

    把存放虚拟磁盘的文件夹复制到另一块物理驱动器。VMware 磁盘由小的描述用 .vmdk 和名称-flat.vmdk、名称-s001.vmdk 等区段文件组成;QEMU 或 KVM 通常只有一个 .qcow2 文件。在副本上操作,原件保持不动。

  3. 让区段文件和描述文件放在一起

    VMDK 描述文件是一个列出区段文件名的简短文本文件。这些文件必须以原名放在同一文件夹中,否则无法组装磁盘。如果是从数据存储下载的,请确认描述文件和大的数据文件都已下载完整。

  4. 打开虚拟磁盘

    在 FileFix Ultimate 中打开已删除文件恢复,选择磁盘映像文件并点击打开映像文件。选择描述用 .vmdk 或 .qcow2 文件后,磁盘以只读方式打开,并像物理磁盘一样列出分区。

  5. 扫描客户机分区

    选择原来存放文件的分区:Windows 客户机通常是较大的 NTFS 卷,Linux 则是 ext4 根分区或 home 分区。开始均衡扫描;如果无法识别文件系统,深度签名扫描仍会查找已知文件类型。

  6. 保存到宿主机

    预览结果,选中需要的文件并保存到宿主机的文件夹或其他磁盘。请查看状态标签,标为已验证的文件通过了独立的格式校验。

能打开哪些虚拟磁盘格式,它们有何不同

VMware 磁盘有几种布局。单文件 sparse VMDK 会随客户机写入而增大;streamOptimized VMDK 是压缩格式,常见于 OVA 和 OVF 导出包;flat VMDK 是预分配的原始文件,由另一个小描述文件说明。FileFix Ultimate 能读取这三种,也能打开 QEMU、KVM、Proxmox 的 QCOW2 第 2 和第 3 版、Hyper-V 的 VHD 和 VHDX,以及原始 .img 文件。

对于 sparse 和 QCOW2 磁盘,客户机从未写过的区域根本不会存入文件。这让文件变小,但也意味着客户机释放、宿主机回收的块可能已经不在文件里了。

快照、精简磁盘和客户机内的 TRIM

虚拟机有快照时,之后的更改保存在基础磁盘旁的差异文件中。只打开基础文件会看到拍快照时的客户机状态,如果文件是之后才删除的,这反而有帮助。若需要最新状态,通常最简单的做法是先在虚拟化软件中合并虚拟机副本的快照,再打开合并结果。

较新的客户机系统会对已删除空间发送 TRIM 或 unmap 命令,有些虚拟化平台随后会收缩精简或 sparse 磁盘。如果发生了这种情况,已删除的块可能已从文件中消失,和 SSD 类似。恢复在厚置备或 flat 磁盘、以及关闭了空间回收的客户机上效果往往更好。

常见错误

为了安装恢复软件而启动虚拟机,会向你想恢复的那块磁盘写入数据。对原始磁盘运行虚拟化软件的修复或压缩命令,可能丢弃空闲空间。改了区段文件名再打开描述文件,会切断它们之间的关联;请不要改名,并保持文件夹结构不变。

无法恢复的情况

  • 加密的虚拟机没有虚拟化平台解密就无法读取;客户机内的 BitLocker 需要恢复密钥。
  • 使用 ReFS、Btrfs、ZFS 等不支持文件系统的客户机,只能按文件签名搜索,没有文件名和文件夹。
  • 如果区段文件缺失或被改名导致部分磁盘缺失,存放在那部分的文件无法恢复。
  • 客户机执行 TRIM 后被宿主机从精简或 sparse 磁盘回收的空间,通常已不再保留旧数据。
  • 依赖父磁盘的快照(子)VMDK、seSparse 和 vmfsSparse 磁盘以及裸设备映射无法打开。请使用基础磁盘,或先在虚拟化软件中合并快照。

FileFix Ultimate 如何帮助你

  • 以只读方式打开 VMDK(sparse、streamOptimized、flat)、QCOW2 v2 和 v3、VHD、VHDX、E01 及原始映像。
  • 列出虚拟磁盘内的分区,读取 NTFS、FAT32、exFAT 和 ext2、ext3、ext4 客户机,恢复文件名和文件夹。
  • 无法识别客户机文件系统时,改用 68 种文件类型的签名搜索。
  • 可以把包括 VMDK 在内的多个磁盘映像组合成虚拟 RAID 0、1、5 或 JBOD。

FileFix Ultimate 个人使用免费、可离线使用,并且不会向你正在恢复的驱动器写入数据。工作或商业用途需为每台电脑购买一年期许可。运行前请检查签名。

常见问题

宿主机上被删除的 VMDK 文件本身能恢复吗?

那是另一项任务:.vmdk 是从宿主机硬盘上删除的,所以要扫描宿主机硬盘,寻找描述文件和大的数据文件。大的 flat 或 sparse 区段往往有碎片,可能只能部分恢复。

打开磁盘需要安装 VMware 或 QEMU 吗?

不需要。程序直接读取虚拟磁盘文件,只要文件在 Windows 10 或 11 电脑上即可。只有想先合并快照时才需要虚拟化软件。

应该选小文件还是大文件?

VMware 磁盘请选择小的描述用 .vmdk,它会告诉程序数据区段在哪里。如果描述文件丢失,也可以把 flat 区段当作原始映像打开。

打开磁盘会改动它或损坏虚拟机吗?

不会。文件以只读方式打开,不写入任何内容,虚拟机仍可照常启动。不过在副本上操作依然是最稳妥的习惯。

分享此页面