背景:

一次客户现场突然掉电,导致虚拟机文件夹里面的文件丢失,只剩余-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进入系统,把数据拷贝下来了,重新搭建就行了。

谢谢两位前辈指点:

参考文献:https://blog.51cto.com/liyanxin/1395713

参考文献:https://blog.51cto.com/hujizhou/1138850

Vmware 恢复flat.vmdk和delta.vmdk的更多相关文章

  1. VDI转vmdk(VirtualBox与VMware硬盘格式转换)[转]

    VirtualBox用了一段时间,感觉没想像中那么的好.虽然设置里可以分配多CPU,但是分配多CPU后经常系统挂掉.整体感觉不够稳定,但它也有好处就是开源免费.但经常挂机总不能一直使用它,索性转到Vm ...

  2. Vmware(vmdk)虚拟机到hyperv(vhd)虚拟机转换

    1.关闭Vmware所有虚拟机 2.合并Vmware磁盘 通常磁盘都分开储存 targetDisk.vmdk 3.转换vmdk到vhd 安装winimage http://www.winimage.c ...

  3. [转]Vmware(vmdk)虚拟机到hyperv(vhd)虚拟机转换

    Vmware(vmdk)虚拟机到hyperv(vhd)虚拟机转换   1.关闭Vmware所有虚拟机 2.合并Vmware磁盘 通常磁盘都分开储存 "C:\Program Files (x8 ...

  4. Vmware player--打开vmdk; 导出系统;

    https://www.cnblogs.com/wxdblog/p/7091496.html 用vmware player打开已经存在的VMDK的方法: https://jingyan.baidu.c ...

  5. VirtualBox导入VmWare生成的.vmdk格式虚拟机镜像

    VmWare默认的镜像格式是.vmdk格式的,VirtualBox则默认是.vdi格式的.其实这在VirtualBox新建虚拟机的过程中是可选的. 导入.vmdk格式的镜像到VirtualBox只需要 ...

  6. 云与备份之(1):VMware虚机备份和恢复

    本系列文章会介绍云与备份之间的关系,包括: (1)VMware 虚机备份和恢复 (2)KVM 虚机备份和恢复 (3)云与备份 (4)OpenStack 与备份 (5)公有云与备份 1. 与备份有关的V ...

  7. VirtualBox VM 空间瘦身记(vmdk)

    本文地址:https://www.ebpf.top/post/shrink_vbox_vmdk_size 在使用 VirtualBox( VMDK 模式)管理虚拟机的时候,我们经常会遇到一些编译安装场 ...

  8. 虚拟机硬盘vmdk压缩瘦身并挂载到VirtualBox

    这个问题其实困扰了挺久的,一直没闲情去解决,网上搜索过很多压缩方法感觉都太麻烦太复杂,因最近在windows上搞docker就一并解决了. 压缩vmdk 首先下载DiskGenius,这工具很牛X,相 ...

  9. VMware 虚拟机的虚拟磁盘编程知识点扫盲之一

    目录 目录 前言 VMware 虚拟机文件类型 VMware 虚拟机的快照 Quiseced Snapshot Quiseced Snapshot 的创建过程 创建快照 创建快照的执行过程及原理 删除 ...

随机推荐

  1. 【pytest】使用parametrize将参数化变量传递到fixture

    分享一个关于在pytest中,如何将测试用例文件中的变量传递到fixture函数. 一.交代应用场景 目前组内的项目,在根目录下是有一个conftest.py文件的,这里有个生成api token的f ...

  2. AutomicBoolean

    AutomicBoolean 介绍 java并发包下提供的原子变量,是原子类其中之一.基本特性是在多线程环境下,多个线程同时执行这些类的实例包含的方法时,具有排他性 当某个线程进入方法,不会被其他线程 ...

  3. 物联网安全Wi-Fi漫游

    物联网安全Wi-Fi漫游 根据Statistica的最新报告,到2021年,全球正在使用的Wi-Fi连接设备的数量预计将增长到222亿.这种Wi-Fi的广泛使用不仅包括消费者的Wi-Fi使用,而且还包 ...

  4. AlexeyAB DarkNet YOLOv3框架解析与应用实践(四)

    AlexeyAB DarkNet YOLOv3框架解析与应用实践(四) Nightmare 从前,在一所大学的大楼里,西蒙尼亚.维达第和齐瑟曼有一个很好的主意,几乎和你现在坐的大楼完全不同.他们想,嘿 ...

  5. 【Java实现】剑指offer53.1——在排序数组中查找数字(LeetCode34:在排序数组中查找元素的起始位置)

    序数组中查找元素的起始位置):思路分享 <剑指offer>题目和LeetCode主站本质是一样的,想要找到target数目,也需要找到左右边界 题目解析: 在一个排序数组中,找到targe ...

  6. 实验3、Flask数据库操作-如何使用Flask与数据库

    1. 实验内容 数据库的使用对于可交互的Web应用程序是极其重要的,本节我们主要学习如何与各种主要数据库进行连接和使用,以及ORM的使用 2. 实验要点 掌握Flask对于各种主要数据库的连接方法 掌 ...

  7. 【NX二次开发】点到矢量或直线的垂点

    已知p1.p2.v1求p0 求解: 通过P1点和P2点,先求出v2: 使用 UF_VEC3_dot(),v1点乘v2得到P0与P2之间的距离: 使用UF_VEC3_unitize()将v1单位化: p ...

  8. 【NX二次开发】Block UI 线性尺寸

    属性说明 常规         类型 描述     BlockID     String 控件ID     Enable     Logical 是否可操作     Group     Logical ...

  9. C#串口通信——DtrEnable 和RtsEnable 两个属性

    转自 http://www.cnblogs.com/hengbo/archive/2011/12/19/2293272.html 在开发中有些串口设备需要串口供电(本人在开发门禁系统时,对起落杆进行控 ...

  10. go语言结构体内存对齐

    cpu要想从内存读取数据,需要通过地址总线,把地址传输给内存,内存准备好数据,输出到数据总线,交给cpu,如果地址总线只有8根,那这个地址就只有8位可以表示[0,255]256个地址,因为表示不了更多 ...