Vmware 恢复flat.vmdk和delta.vmdk
背景:
一次客户现场突然掉电,导致虚拟机文件夹里面的文件丢失,只剩余-flat.vmdk和-delta.vmdk文件,其他文件全部丢失,文件格式原本为"文件"格式。新建虚拟机无法直接使用此文件夹里面的文件。
知识普及:
xx-delta.vmdk是快照磁盘数据文件
xx-flat.vmdk是磁盘数据文件
-flat.vmdk文件:这是个默认的大型虚拟磁盘数据文件,创建于你添加虚拟硬盘驱动到虚拟机时,而不是RDM。当使用厚磁盘时,这个文件的大小相当于你创建虚拟硬盘驱动时所指定的大小。
-delta.vmdk文件:这些虚拟磁盘数据文件只用于创建虚拟机快照时。当创建了快照,对原始flat.vmdk的所有写入都停止,并变成只读;然后这些对虚拟磁盘的更改将写入delta文件。这些文件的初始大小是16MB,然后随着对虚拟机虚拟硬盘的更改需要而以16MB的速度增长。因为这些文件是虚拟磁盘所作更改的位图,一个单一delta.vmdk文件不能超过原始flat.vmdk文件的大小。每为虚拟机创建一个快照就会生成一个delta文件,并且它们的文件名以数字递增(如myvm-000001-delta.vmdk和myvm-000002-delta.vmdk)。当快照融合到原始–flat.vmdk文件后再删除时,这些文件将自动删除。
解决方法:共分为两个大步骤
第一步:恢复磁盘文件
1、SSH登录到ESX主机的控制台界面;(具体不会看另一篇文档)
2、切换到问题磁盘所在目录:
df -h cd /vmfs/volumes/xxxxvolume/xxxx |
3、确认当前虚拟磁盘所用的SCSI控制器(有就查看,没有就算了)
less *.vmx,查找到类似scsi1.virtualDev="lsilogic"的内容 |
4、查看需要修复文件的大小(必须一致!必须一致!必须一致!):
ls -ltr 会显示如下类似信息 -rw------- 1 root root 4294967296 Oct 11 12:30 vmdisk0-flat.vmdk |
5、执行vmkfstools命令创建一个新磁盘:
vmkfstools -c 4294967296 -a lsilogic xxx.vmdk -c:磁盘大小 -a:磁盘控制器类型(BusLogic 或者 LSILogic) -d:磁盘类型 |
第二步:恢复快照文件
1.系统正常启动以后,开始执行快照。
2.查看自己的xx-delta.vmdk文件,有几个就创建几个快照,用来替换。
3.全部替换完成后,转到最新的快照。启动系统就好了。
一套组合拳完毕,打完收工。然而。。。蓝屏!!!
不知道我的系统老旧还是什么原因,恢复后显示蓝屏,无法进入系统,最后通过PE进入系统,把数据拷贝下来了,重新搭建就行了。
谢谢两位前辈指点: