vmwareESXI虚拟机开机找不到磁盘,丢失VMDK文件
虚拟机下各文件注释:
在一次虚拟机关机后再开机报错:
Unable to enumerate all disks 找不到磁盘
员工经过长期磨合与沉淀,具备了协作精神,得以通过团队的力量开发出优质的产品。创新互联公司坚持“专注、创新、易用”的产品理念,因为“专注所以专业、创新互联网站所以易用所以简单”。公司专注于为企业提供网站设计、成都做网站、微信公众号开发、电商网站开发,微信小程序定制开发,软件定制设计等一站式互联网企业服务。
针对无快照时丢失.vmdk描述符文件:
数据存储浏览器中列出的磁盘文件是虚拟机的基础磁盘文件为-flat.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
创建与丢失描述符文件相同大小的新虚拟磁盘:-c :指定文件大小vmkfstools -c 214748364800 -a lsilogic -d thin temp.vmdk
删除新建的基础磁盘,保留新的描述符文件:rm -i temp-flat.vmdk
将新的描述符文件重命名为丢失的虚拟磁盘:
编辑新的描述符文件指向基础虚拟磁盘文件:vi cl-win7_4.vmdk
注意:如果原始 .vmdk 不是精简磁盘,找到 ddb.thinProvisioned = "1" 行后将其移除。
检查磁盘链状态: 返回正常
vmkfstools -e cl-win7_4.vmdk
正常打开电源:
针对有快照时丢失.vmdk描述符文件:
无法开机,无法恢复快照:
我这里做了两次快照,故有两个增量磁盘文件:
02-sesparse.vmdk基于01-sesparse.vmdk做的增量快照,01-sesparse.vmdk基于-flat.vmdk基础磁盘做的增量,形成了一个完整的磁盘链
先从最近一次快照文件检测一次磁盘链:(序号最大的为正在使用的快照增量磁盘文件)
vmkfstools -e cl-win7_4-000002.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文件:
在有多级快照下可从丢失文件下层读取CID
如我这里丢失的是1.vmdk,我从2.vmdk读取父层CID,就是1.VMDK的CID,1.VMDK的父CID就是基础描述符的CID
最后保存更改最后测试下磁盘链完整性:
vmkfstools -e cl-win7_4-000002.vmdk
测试正常,就可以正常开机了
分享名称:vmwareESXI虚拟机开机找不到磁盘,丢失VMDK文件
文章来源:http://hbruida.cn/article/jgpisi.html