突然掉电,导致虚拟机文件夹里面的文件丢失,只剩余-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

 

posted on 2022-08-09 19:41  小油2018  阅读(1351)  评论(0编辑  收藏  举报