码迷,mamicode.com
首页 > 系统相关 > 详细

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

时间:2019-11-25 20:43:43      阅读:892      评论:0      收藏:0      [点我收藏+]

标签:信息   找不到   vmware   更改   基于   读取   描述符   完整   parent   

虚拟机下各文件注释:
技术图片
在一次虚拟机关机后再开机报错:
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
技术图片
测试正常,就可以正常开机了

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

标签:信息   找不到   vmware   更改   基于   读取   描述符   完整   parent   

原文地址:https://blog.51cto.com/11706802/2453350

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!