VMware Workstation虚拟机vmx配置文件丢失问题

发布 : 2020-05-31 分类 : VMware 浏览 :

简介

为了方便快捷,我一般是把虚拟机放在SSD的移动硬盘上,但最近接口不是很稳定,虚拟机运行时有一定几率移动硬盘断线,导致虚拟机挂掉,运气不好的话虚拟机就起不来了.

所以首先还是要勤做snapshot.

环境

VMware Workstation 15

vmx文件丢失

vmx是配置文件,丢失后虚拟机无法启动,有些异常情况下,vmx文件直接被清空,导致虚拟机启动不了。

这种情况下可以尝试从vmware.log文件恢复

方法1. 手动恢复

vmware.log搜索DICT --- CONFIGURATION找到如下内容,直到以另一段DICT ---结束

1
2
3
4
5
6
7
8
2020-05-28T01:48:14.628+08:00| vmx| I125: DICT --- CONFIGURATION E:\k8s\k8sn2\k8sn1.vmx 
2020-05-28T01:48:14.628+08:00| vmx| I125: DICT displayName = "k8sn2"
2020-05-28T01:48:14.628+08:00| vmx| I125: DICT config.version = "8"
...
...
...
2020-05-28T01:48:14.630+08:00| vmx| I125: DICT cleanShutdown = "TRUE"
2020-05-28T01:48:14.630+08:00| vmx| I125: DICT --- USER DEFAULTS C:\Users\1\AppData\Roaming\VMware\config.ini

将中间的内容拷到vmx文件,手动去除每个参数前的时间戳等冗余内容,参数太多,会有点麻烦。
完成后启动虚拟机,大部分情况下能启动,问题解决。

方法2. 通过脚本自动生成

这个方法需要用到Linux

首先拷贝wmware.log到某个目录下去

生成脚本文件vmxrebuild.sh并赋予可执行权限

1
touch vmxrebuild.sh && chmod +x vmxrebuild.sh

文件中写入以下这行内容即可

1
sed -n '/DICT --- CONFIGURATION/,/DICT ---/ s/^.*DICT \+\(.\+\) = \(.\+\)$/\1 = \2/p' vmware.log >> new.vmx

执行vmxrebuild.sh,完成

报错“指定文件不是虚拟磁盘”

运气不佳,恢复vmx之后启动依然报错,如下
Alt text

在这个情况下
scsi0.present = "TRUE"改为FALSE
再通过snapshot恢复,希望你之前记得做快照,问题解决

附件

History

v1.0,2020.05.31,初始版本

本文作者 : Shen Peng
原文链接 : http://yoursite.com/2020/05/31/VMware-Workstation虚拟机vmx配置文件丢失问题/
版权声明 : 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!

知识 & 情怀 | 二者兼得

微信扫一扫, 向我投食

微信扫一扫, 向我投食

支付宝扫一扫, 向我投食

支付宝扫一扫, 向我投食

留下足迹