虚拟机磁盘误删除恢复故障

  • 最近一台存放重要文件的Windows7虚拟机磁盘文件被误删除,导致虚拟机无法启动,只留下两个文件,test-flat.vmdk和test-000001-delta.vmdk,启动虚拟机时报错,信息如下:the file specified is not a virtual disk。无法打开磁盘“/vmfs/volumes4db4f346-a928774c-50af-3c4a92731f32/test/,test-flat.vmdk”或其所依赖的快照磁盘之一。

  • 看到此景,这可咋办,上网查阅相关资料,终于找到了解决办法.

  • flat.vmdk文件:这是个默认虚拟磁盘数据文件,创建于你添加虚拟硬盘驱动到虚拟机时,而不是RDM。当使用厚磁盘时,这个文件的大小相当于你创建虚拟硬盘驱动时所指定的大小。

  • delta.vmdk文件:这个虚拟磁盘数据文件只用于创建虚拟机快照时。当创建了快照,对原始flat.vmdk的所有写入都停止,并变成只读;然后这些对虚拟磁盘的更改将写入delta文件。这些文件的初始大小是16MB,然后随着对虚拟机虚拟硬盘的更改需要而以16MB的速度增长。因为这些文件是虚拟磁盘所作更改的位图,一个单一delta.vmdk文件不能超过原始flat.vmdk文件的大小。每为虚拟机创建一个快照就会生成一个delta文件,并且它们的文件名以数字递增(如test-000001-delta.vmdk, test-000002-delta.vmdk)。当快照融合到原始–flat.vmdk文件后再删除时,这些文件将自动删除。

  • 综上所述,可以确定数据都还在,开始进行数据恢复工作,步骤如下:

1.创建一台同样配置的虚拟机,不创建磁盘,命名虚拟机名字为test1.

2.ssh登录到esxi宿主机,默认ssh服务没开启,首先开启ssh服务,具体方法可从网络上搜索,ssh登录,结果悲剧了,不能密码登录,被前任负责人设置了秘钥登录,找不到秘钥了,唉!!!!算了,秘钥问题等过后在解决,先使用client工具登录vcenter服务器,转移test-flat.vmdk和test-000001-delta.vmdk至另外一台esxi服务器的一台新建虚拟机(创建时不创建磁盘)中.

3.开启ssh服务,登录至此esxi宿主机,查找test-flat.vmdk所在的目录并进入其所在目录中

# find / -name 'test-flat.vmdk

# ls -la *vmdk   查看vmdk文件大小,下面要用到(FILE_SIZE)

# vmkfstools -c FILE_SIZE -a lsilogic test1-flat.vmdk
  • 启动虚拟机,ok,成功启动,进去查看要找的重要文件,发现是7月份的,不是最新的,7月份做过一次快照,此时的文件内容就是做快照之前的内容,做快照之后到故障期间的文件内容还没找回来,好在存在test-000001-delta.vmdk,这个文件内存储了快照之后的变化的文件内容,查看大小在5G左右

  • 虚拟机关机,新创建一个快照,将test-000001-delta.vmdk重命名,覆盖新创建的快照的数据文件(delta.vmdk.文件)

  • 开机启动虚拟机,发现要找的文件都在,已经成功全部恢复

参考文档:(http://www.cnblogs.com/sammyliu/p/5661085.html)


文章作者: Jemmy yang
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Jemmy yang !
评论
 上一篇
使用开源软件的正确姿势 使用开源软件的正确姿势
使用开源软件的正确姿势一、选择开源软件的考量点: 是否满足业务 是否成熟 可以从以下几个方面考察是否成熟: 版本号:一般建议除非特殊情况,否则不要选0.X版本的,至少选1.X版本的,版本号越高越好。 使用的公司数量:一般开源项目都会把采用了
2019-06-27 BY 木易杨
本篇 
虚拟机磁盘误删除恢复故障 虚拟机磁盘误删除恢复故障
最近一台存放重要文件的Windows7虚拟机磁盘文件被误删除,导致虚拟机无法启动,只留下两个文件,test-flat.vmdk和test-000001-delta.vmdk,启动虚拟机时报错,信息如下:the file specified
2019-06-20 Jemmy yang