如何删除存储在VMDK中的文件?

我是一名开发人员,而不是IT人员,但是我是当前pipe理服务器的负责人。 我遇到了一个问题…显然,我们的SQL备份比我预期的要大得多,星期六晚上,我们的SQL备份运行,然后完全填满我们的虚拟磁盘。

我无法启动虚拟机,所以我想我只是将驱动器连接到另一个虚拟机,删除旧的备份,然后将其添加回SQL虚拟机。 但是,当我从另一个虚拟机浏览驱动器时,驱动器上只有一定数量的文件可用。 因此,我无法删除旧的备份,使磁盘仍然完整。 然后我读了一篇文章,提到我可以删除一个快照来释放一些空间。 回想起来,这是一个愚蠢的事情,但我做到了。 这是我捕获的第一个快照(一个我不需要了)。

所以,现在我有一个VMDK,并出现以下错误信息:

父虚拟磁盘自从创build孩子以来已被修改。 父虚拟磁盘的内容ID与子对应的父内容ID不匹配。

在这里输入图像说明

我目前正在修复不匹配的CID,但我仍然不知道如何处理完整的VMDK …任何人都可以解释如何进入该虚拟磁盘并删除一些文件,以便我可以重新configuration备份?

更新:查看我的答案,看看我如何解决这个问题

如果你没有时间像我这样做,那么HopelessN00b的解决scheme就是要走的路(假设你有备份的东西)。

在这一点上,从希望备份的副本中恢复VMDK会更快,更容易。 快照是增量磁盘 ,通过删除最早的磁盘 ,您可能已经渲染了无用的快照。

它可能或不可能解决你的快照链,最终得到一个当前,工作的虚拟磁盘,所以…以及学习经验。 将备份,日志或任何可能将磁盘空间不足的文件推送到非系统磁盘上比较安全,以便您可以简单地扩展它,而不是尝试挂载系统磁盘,释放空间并重新启动。

此外,为了将来的参考,快照不会占用VMDK文件系统中的空间,因此删除它们将不会释放VDMK中的空间。

从虚拟磁盘中删除文件(以释放磁盘上的空间)…

1)从虚拟机中删除虚拟磁盘:

  • 打开vSphere Client
  • 右键单击受影响的虚拟机
  • 硬件选项卡中,从硬件列表中select完整磁盘(“ 硬盘# ”)
  • 点击删除
  • select从虚拟机删除 (不要select“从虚拟机删除并从磁盘删除文件”)

2)将虚拟磁盘添加到正在运行的虚拟机:

  • 打开vSphere Client
  • 右键单击正在工作的虚拟机
  • 在“ 硬件”选项卡中,单击添加>硬盘>使用现有…>select“完整”虚拟磁盘

3)浏览并删除虚拟磁盘内的文件以释放一些空间

  • 打开正在运行的VM的控制台
  • 浏览到新连接的虚拟磁盘(应在文件资源pipe理器中可见)
  • find并删除不必要的文件,以释放磁盘上的一些空间

3b)如果看不到驱动器,请打开“ 磁盘pipe理”

  • find“丢失”驱动器,并将驱动器从“ 脱机 ”切换到“ 联机”

修复不匹配的CID错误

VMware查看本指南:

解决CID不匹配错误:从创build子项后,父虚拟磁盘已被修改(1007969)

基本上,您可以查看vmware.log文件以确定要查找的CID,然后在未能连接的虚拟磁盘上手动设置该CID。 本指南看起来很吓人,但是这个过程很简单。 我用腻子SSH进入主机,然后使用vim纠正.vmdk文件中的CID。


为防止将来发生这种情况,我将在主机上使用更大的驱动器,而不是将虚拟机存储在与虚拟机pipe理程序相同的驱动器上。

感谢您的帮助。 如果像我这样的人遇到这个问题,请不要像我一样恐慌。 仔细阅读错误和相应的知识库文章,并确保您保留了所有更改的备份(也就是说,如果不先备份虚拟机目录,则不要删除快照)。

更新:阅读了解ESXi / ESX中的VM快照(1015180)| VMware知识库了解快照是如何工作的,如果您需要删除快照,您将为自己节省很多心痛。