突然掉电,导致虚拟机文件夹里面的文件丢失,只剩余-flat.vmdk和-delta.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、旧的虚拟机test-1 无法启动,只剩下test-1-flat.vmdk test-1-delta.vmdk 文件
2、新建一台虚拟机test-2(去掉磁盘)
恢复步骤:
第一步:恢复磁盘文件(恢复虚拟机)
1、新建一台
1、SSH登录到ESX主机的控制台界面;
https://www.cnblogs.com/xiaoyou2018/p/16567306.html
2、切换到test-1磁盘所在目录:
find / -name test-1-flat.vmdk
查看文件大小
ls -la test-1-flat.vmdk
3、切换到test-2虚拟机目录,创建一个新的 vmdk 文件,大小和 test-1-flat.vmdk文件保持一致。命令为 vmkfstools -c 磁盘文件大小 -a lsilogic 磁盘名称
vmkfstools -c 3298534883328 -a lsilogic test-2.vmdk
-c:磁盘大小
-a:磁盘控制器类型(BusLogic 或者 LSILogic)
-d:磁盘类型
创建完毕,重新查看test-2虚拟机磁盘文件可以看到新建的 test-2.vmdk 和 test-2-flat.vmdk 文件了
4、用test-1-flat.vmdk覆盖掉test-2-flat.vmdk
mv test-1-flat.vmdk /vmfs/volumes/56e7c670-42015160-4e1a-001e67ca37fe/test-2-flat.vmdk
5、test-2虚拟机添加磁盘
6、虚拟机网卡Mac自动获取(先改手动再改自动)
7、启动虚拟机
第二步:恢复虚拟机最近快照的数据(验证失败)
使用test-1虚拟机最近的快照文件test-1-000002-delta.vmdk文件恢复快照:
1.此时test-2系统已经起来,我们再执行一个快照。生成一个test-2-000001-delta.vmdk
2. 用test-1虚拟机的test-1-000002-delta.vmdk,覆盖掉新建的快照数据文件
3.恢复虚拟机快照
参考:
https://blog.51cto.com/liyanxin/1395713
https://www.cnblogs.com/dsl146/p/13739957.html
https://blog.csdn.net/u011180520/article/details/103635045
https://www.txisfine.cn/archives/2c2332aa#%E5%A4%84%E7%90%86%E8%BF%87%E7%A8%8B