问题描述
虚拟机关机之后再开机突然出现指定文件不是虚拟磁盘的问题,导致无法开机
由于虚拟机磁盘内有代码在,所以得尽量恢复虚拟磁盘
尝试移除硬盘,然后再重新添加,仍然报错
尝试修复
● 网上查找虚拟磁盘修复方法,推荐使用 vmware-vdiskmanager.exe工具
● 在 vmware 目录执行以下命令,尝试修复虚拟磁盘
○ vmware-vdiskmanager.exe -R “G:\VMware\disk\hdd\hdd.vmdk”
■ -R 表示修复
■ 后面跟的是虚拟磁盘路径,在文件资源管理器复制文件夹地址,然后加上要修复的磁盘文件名即可
● 结果执行命令的回显一直如下
这里的 SSLConfigLoad: Failed to load OpenSSL config file.其实只是工具的回显,对实际功能无影响
● 可以使用 -e 来检查磁盘,会显示出错的真实原因
可以看到,真实的问题原因还是指定的文件不是一个虚拟磁盘
猜测可能是虚拟硬盘文件损坏导致的
解决问题
● 由于尝试了多种方法无法解决问题,只能看看能否通过添加新的磁盘来修复此问题
● 仅对创建磁盘时是将虚拟磁盘拆分成多个问题的虚拟磁盘有效
● 步骤
● 切记:操作之前先备份
- 按照之前的硬盘大小,重新新建一个同样大小的虚拟磁盘
- 用新建的虚拟磁盘的文件挨个替换旧磁盘的文件,替换之前需要先备份
- 如果替换之后,问题仍然存在,还是提示指定的文件不是虚拟磁盘,则恢复该文件,然后替换下一个
● 如图,当我替换到 hdd-s007.vmdk时,添加硬盘不再提示指定的文件不是虚拟磁盘,硬盘添加成
● 确定是 hdd-s007.vmdk文件有问题
4. 替换掉该文件即可
目前此方法只能最大程度恢复虚拟硬盘文件,如果有更好的办法,可以与我沟通!