案例:启动该虚拟机需要此文件

您好,我运行的是 VMware Workstation Pro 16.1.7。当我尝试恢复快照时,出现此错误,并且快照没有转到与快照相关的点:

  • 找不到文件:/****.vmdk
  • 启动该虚拟机需要此文件。如果此文件已移动,请指定新位置。希望得到一些关于如何解决这个问题的建议。

- 来自communities.vmware.com 的问题

VMware Workstation 是个人用户和小型企业最流行、最方便的2 类虚拟机管理程序之一 。它提供了直观的指南,使您能够以简单且经济高效的方式创建功能完整的虚拟机。

但是,有时您在运行虚拟机时可能会遇到一些错误。例如,错误:“找不到文件。启动该虚拟机需要此文件”

启动该虚拟机需要此文件

是什么原因导致此错误以及如何修复它?本文将为您一一解释。

错误原因“需要此文件才能启动此虚拟机”

那么,是什么原因导致您的虚拟机无法开机呢?看一下错误描述。它表明您缺少组成该虚拟机的 vmdk 文件。

原因通常是 防病毒扫描应用程序隔离了其中一个 .vmdk 文件 ,或者也有可能 您不小心删除了它 。例如,您不小心删除了一个巨大的快照文件以腾出存储空间。

如果你 备份了这个VMware Workstation虚拟机 ,事情就非常简单了。您只需恢复虚拟机或文件并将其放回虚拟机文件夹即可。但如果你不这样做,事情就会变得更加棘手。有时您可以取回该文件,有时则不能。

首先,您需要弄清楚您丢失或删除的文件是什么。我们以快照为例。

拍摄和删除 VMware 快照时会发生什么

拍摄 VMware 快照将创建以下文件:

  • VMname.vmsd :快照列表文件,存储所有快照的名称、描述和关系。它是随 VM 创建的,无论快照是否存在,都会出现在 VM 目录中。
  • VMname-00000#-delta.vmdk :拍摄快照时创建的差异磁盘文件。拍摄快照将保留虚拟机的状态并停止写入 VMname-flat.vmdk 文件,所有后续写入都将重定向到 VMname-00000#-delta.vmdk。
  • VMname-00000#.vmdk :磁盘描述符文件,包含有关快照及其磁盘的信息。它是在拍摄每个快照时创建的,并更新父磁盘信息。对于第一个快照,父级是基础磁盘,对于后续快照,父级是上一个快照磁盘。
  • VMname-snasphot#.vmsn :快照状态文件,用于存储拍摄快照时虚拟机的状态。它是随快照创建的,并在正确删除快照时删除。如果您选择“内存”选项,大小将会增加。
  • VMname-snapshot#.vmem :包含拍摄快照时 VM 内存的所有内容,仅当您选择“内存”选项时才会创建。

虚拟机快照文件

如果您不小心 从VM文件夹中删除了VMname-00000#.vmdk文件 (磁盘描述符文件),您不会丢失数据,但仍然无法打开VM并显示错误。但是,可以通过重新创建描述符文件来修复它。

接下来,我将向您展示具体的步骤。

在开始之前,请 备份VMware Workstation虚拟机 以避免数据丢失。

如何修复错误“启动此虚拟机需要此文件”

要修复此错误,首先需要检查组成虚拟磁盘的所有文件是否都存在于虚拟机的文件夹中。然后找回丢失的文件或找到重新创建文件来替换它的方法。

例如,如果您仅删除了快照描述符文件(文件名:VMname-00000#.vmdk),则可以通过重新创建描述符文件来恢复已删除的快照。接下来我就给大家展示一下详细的步骤。

1. 启动 VMware Workstation ,将光标移至 目标虚拟机的名称 。会有一个框显示 存储本系统的虚拟磁盘文件和配置文件的 文件夹路径 。

虚拟机路径

2、来到该文件夹​​,然后 检查 组成虚拟磁盘的所有文件是否都在这里。

提示 :或者您可以更深入地查看 VMware.log 文件,看看是否有消息报告 VMDK 文件丢失。

3. 用记事本 打开vmdk文件 ,找到 丢失快照文件的 父磁盘 文件名 。

用记事本打开VMDK文件

4. 复制快照描述符文件之一,并将其​​重命名为已删除快照的名称。

这里我复制了snapshot1来恢复已删除的snapshot2作为演示。

重命名复制的快照描述符文件

5. 使用 记事本 打开复制的文件,将parentFileNameHint="VMname.vmdk" 的值更改 为已删除快照的父磁盘名称,并将 RW 12582912 VMFSSPARSE "Windows Demo-00000#-delta.vmdk"的 值更改 为已删除快照增量磁盘名称的文件名。

例如,我的s​​napshot2的父级是snapshot1,所以我将 parentFileNameHint=“Windows Demo.vmdk” 更改 为 parentFileNameHint=“Windows Demo-000001.vmdk”

并将 RW 12582912 VMFSSPARSE "Windows Demo-000001-delta.vmdk" 更改 为 RW 12582912 VMFSSPARSE "Windows Demo-000002-delta.vmdk"

更改快照描述符文件中的值

6. 将删除的快照描述符文件上传到数据存储中的目标虚拟机文件夹。现在您可以看到已删除的.vmdk文件已恢复并且虚拟机可以启动。

上传快照描述符文件

概括

在 VMware Workstation、Player 或 Fusion 上启动虚拟机时,您是否遇到过错误“文件未找到 vmdk 启动此虚拟机需要此文件”?此错误是由错误描述中指出的任务 vmdk 文件引起的。

要修复此错误,您只需找到丢失的文件并将其放回 VM 文件夹即可。如果您意外删除了 vmdk 文件(例如快照描述符文件),您可以 通过重新创建该文件并更改父磁盘名称和增量磁盘名称值来 恢复已删除的快照 。