误删快照文件导致VMware错误!

“大约一周前,我需要恢复虚拟机。我这样做了,但我做得不恰当。我在虚拟机仍在运行时删除了2个文件,然后克隆了它,但之后虚拟机无法启动。我一直在尝试恢复到较新的快照,但没有成功。如果大家有什么解决方法,请告诉我。”

如果您未能接通VMware虚拟机的电源并收到错误通知“系统找不到指定的文件。无法打开磁盘或它所依赖的某个快照磁盘”,这可能是由于缺少虚拟机磁盘.vmdk描述符或数据文件,或者虚拟机快照链变得不一致而导致的。

您可能错误地删除了快照文件,或者快照文件可能已损坏。为了避免严重的数据丢失,是否有办法可以在VMware上恢复已删除的快照?

是否可以在VMware中恢复已删除的快照?

有办法可以让虚拟机恢复删除的快照文件吗?答案当然是肯定的。

  • 如果只删除了快照描述符文件(文件名:VMname-000000#.vmdk),则可以通过重新创建描述符文件来恢复已删除的快照。
  • 如果删除了快照数据文件,则没有内置的方法来恢复它们。您可能需要寻求专业的第三方工具的帮助,或者只需恢复父虚拟机磁盘即可将虚拟机恢复到拍摄快照之前的状态。
  • 如果您之前就定期备份虚拟机,就更不用担心了,可以随时安全地恢复它。

拍摄和删除虚拟机快照是会发生什么?

当我们在拍摄虚拟机快照时,一般会创建以下几种文件:

  • VMname.vmsd:存储全部快照的名称、描述和关系的快照列表文件。它是用虚拟机创建的,无论是否存在快照,都会显示在虚拟机目录中。
  • VMname-000000#-delta.vmdk:拍摄快照时创建的差异磁盘文件。拍摄快照将保留虚拟机的状态并停止向VMname-flat.vmdk文件的写入,后续的全部写入都将重定向到VMname-000000#-delta.vmdk。
  • VMname-000000#.vmdk:包含快照及其磁盘信息的磁盘描述符文件。它在拍摄快照时为每个快照创建,并更新父磁盘信息。对于头一个快照,父级是基本磁盘,对于后续快照,父级别是上一个快照磁盘。
  • VMname snasphot#.vmsn:快照状态文件,用于存储拍摄快照时虚拟机的状态。它是用快照创建的,当快照被正确删除时将被删除。如果选择了Memory(内存)选项,则大小将增加。
  • VMname snapshot#.vmem:包含拍摄快照时虚拟机内存的全部内容,仅在选择memory选项时创建。

除此之外,我们在快照管理器中删除虚拟机快照和在数据存储中删除虚拟机快照是不相同的。

从快照管理器中删除虚拟机快照是快照的正确使用方法。它将把VMname-000000#-delta.vmdk中的数据合并到父磁盘,以后的更改将被重定向回父磁盘。

从数据存储中删除虚拟机快照只是删除文件。如果删除VMname-000000#-delta.vmdk文件,将丢失拍摄快照后存储的数据。您只能从虚拟机备份或使用第三方工具恢复已删除的vmdk文件。

如果从数据存储中删除了VMname-000000#.vmdk文件,则不会丢失数据,但仍然无法打开虚拟机,可以通过重新创建它们来恢复它们。在接下来的内容中,我们将介绍一下实现这一目的的具体步骤。

已删除的虚拟机快照怎么恢复?

在这部分内容中我们将演示一套详细的恢复流程,看完之后大家应该就能够搞清楚已删除的虚拟机快照怎么恢复啦。

步骤1. 访问vSphere Web Client,导航到左侧列表中的“存储”,然后单击“数据存储浏览器”

步骤2. 打开目标虚拟机文件夹,将其中的全部文件“下载”到本地。

下载虚拟机文件到本地
 

步骤3. 下载完成后以记事本方式打开vmdk文件,以查找删除的快照父磁盘和文件名。

步骤4. 复制其中一个快照描述符文件,并使用已删除快照的名称对其进行重命名(这里,我复制了用于恢复已删除快照2的快照1作为演示)。

复制其中一个快照描述符文件
 

步骤5. 使用记事本方式打开复制的文件,并使用已删除快照的父磁盘名更改parentFileNameHint=“VMname.vmdk”的值,以及使用已删除的快照增量磁盘名的文件名更改RW 12582912 VMFSSPARSE“Windows Demo-00000#-delta.vmdk”的值。

例如,我的snapshot2的父级是snapshot1,因此我将parentFileNameHint=“Windows Demo.vmdk”更改为parentFileName Hint=”Windows Demo-000001.vmdk”

并将RW 12582912 VMFSSPARSE“Windows Demo-000001-delta.vmdk”更改为RW 12582212 VMFSSPARSE“Windows Demon-000002-delta.vmtk”

更改值
 

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

定期备份虚拟机以免重要数据丢失!

有时,微小的错误操作会导致严重的数据丢失。就像我之前提到的,如果您错误地删除了VMware快照的增量磁盘,则只能从备份中取回它们,否则可能会永远丢失以后的数据。这就是备份如此重要的原因。

备份文件可以独立存储在本地,网络或云位置,因此它们不容易被错误删除,您不用担心磁盘空间不足。因此,为了保证数据安全和效率备份,您可以使用备份软件。

对此,我们推荐大家使用这个专业的虚拟机备份软件——傲梅企业备份旗舰版,它支持VMware ESXi和Hyper-V,使您能够一次创建多个虚拟机的备份映像。除了基本的数据保护外,您还可以制定灵活的备份策略,监控状态并在出现错误时发送电子邮件通知,以节省劳动力并降低管理成本。

步骤1. 绑定设备:打开傲梅企业备份旗舰版,登录您的账号,在主界面中将您的vCenter或ESXi主机添加为源设备(此步骤仅在初次绑定主机时才需要,绑定成功之后则无需重复此步骤)。

vCenter或ESXi主机添加为源设备
 

步骤2. 创建备份任务:点击“备份任务”>“新建任务”

新建任务
 

步骤3. 根据您的需求设置备份类型、任务名、设备、备份目标、备份计划、版本清理等。

步骤4. 点击右下角的“开始备份”按钮,然后选择“添加定时任务并立即备份”“仅添加定时任务”

开始备份
 

在此之后,如果您遇到了一些意外状况,则可以通过备份来快速恢复虚拟机,或者您也可以选择将备份还原到新位置,从而快速创建相同的虚拟机,非常方便实用。

虚拟机还原到新位置
 

结论

如果不小心删除了快照该怎么办?本文向大家介绍了一个有效的在VMware中恢复已删除的快照的方法,大家参照流程逐步进行操作即可。

除此之外,我们需要注意的一点是,不要太过依赖快照,因为虚拟机快照并不等于备份,在实际使用中,如果是在进行一些危险操作前可以拍摄快照作为安全回滚点,但如果是想要长久保护虚拟机数据安全,我们还是建议大家采用正规的备份方法。