vmware ESXI虚拟机开机找不到磁盘,丢掉VMDK文件康复

虚拟机下各文件注释:
vmware ESXI虚拟机开机找不到磁盘,丢掉VMDK文件康复
在一次虚拟机关机后再开机报错:
Unable to enumerate all disks 找不到磁盘
vmware ESXI虚拟机开机找不到磁盘,丢掉VMDK文件康复

针对无快照时丢掉.vmdk描述符文件:

数据存储浏览器中列出的磁盘文件是虚拟机的基础磁盘文件为-flat.vmdk

vmware ESXI虚拟机开机找不到磁盘,丢掉VMDK文件康复
从头创建vmdk描述符文件:
1.承认 flat.vmdk基础磁盘文件的大小(字节)
2.创建与flat.vmdk相同大小的新的空虚拟磁盘。
3.重命名新创建的.vmdk磁盘的描述符文件匹配原始虚拟磁盘的称谓
4.批改重命名的描述符文件的内容以引用 flat 文件。
5.移除新创建的磁盘遗留的暂时 flat 文件。
SSH登陆ESXI进入数据存储目录:
Cd /vmfs/volumes/5dd90fdc-2ceecbae-b595-801844eed08a/cl-win7
vmware ESXI虚拟机开机找不到磁盘,丢掉VMDK文件康复
创建与丢掉描述符文件相同大小的新虚拟磁盘:-c :指定文件大小
vmkfstools -c 214748364800 -a lsilogic -d thin temp.vmdk
删去新建的基础磁盘,保存新的描述符文件:
rm -i temp-flat.vmdk
将新的描述符文件重命名为丢掉的虚拟磁盘:
vmware ESXI虚拟机开机找不到磁盘,丢掉VMDK文件康复
批改新的描述符文件指向基础虚拟磁盘文件:vi cl-win7_4.vmdk
留心:假设原始 .vmdk 不是精简磁盘,找到 ddb.thinProvisioned = "1" 行后将其移除。
vmware ESXI虚拟机开机找不到磁盘,丢掉VMDK文件康复

检查磁盘链情况: 回来正常
vmkfstools -e cl-win7_4.vmdk
正常翻开电源:
vmware ESXI虚拟机开机找不到磁盘,丢掉VMDK文件康复

针对有快照时丢掉.vmdk描述符文件:

无法开机,无法恢复快照:
vmware ESXI虚拟机开机找不到磁盘,丢掉VMDK文件康复
我这儿做了两次快照,故有两个增量磁盘文件:
02-sesparse.vmdk依据01-sesparse.vmdk做的增量快照,01-sesparse.vmdk依据-flat.vmdk基础磁盘做的增量,形成了一个无缺的磁盘链
vmware ESXI虚拟机开机找不到磁盘,丢掉VMDK文件康复
vmware ESXI虚拟机开机找不到磁盘,丢掉VMDK文件康复
先从最近一次快照文件检测一次磁盘链:(序号最大的为正在运用的快照增量磁盘文件)
vmkfstools -e cl-win7_4-000002.vmdk
vmware ESXI虚拟机开机找不到磁盘,丢掉VMDK文件康复
能够正常的看到检查02.vmdk回来信息闪现02.vmdk检查正常,01.vmdk磁盘链不一致
继续检查01.vmdk发现发现只需cl-win7_4-000001-sesparse.vmdk该增量磁盘文件,磁盘描述符文件丢掉,我们为该增量磁盘重建一个磁盘描述符文件:
从基础磁盘描述符拷贝一个模板:
cp cl-win7_4.vmdk cl-win7_4-000001.vmdk
批改cl-win7_4-000001.vmdk的CID ,parentCID,createType,删去空行,增加一行父vmdk文件:
vmware ESXI虚拟机开机找不到磁盘,丢掉VMDK文件康复
在有多级快照下可从丢掉文件底层读取CID
如我这儿丢掉的是1.vmdk,我从2.vmdk读取父层CID,就是1.VMDK的CID,1.VMDK的父CID就是基础描述符的CID
终究保存更改终究检验下磁盘链无缺性:
vmkfstools -e cl-win7_4-000002.vmdk
vmware ESXI虚拟机开机找不到磁盘,丢掉VMDK文件康复
检验正常,就能够正常开机了