linux或windows下vmware虚拟机报错,提示“vmx file is corrupt”,问题修复办法,附脚本。

问题:

前几天,vmware关机时出现了一些错误提示,当时没有在意,今天开机时提示如题错误,百度到了一些解决方法,但是发现其中与我的情况有出入的地方,特此发文,记录一下,并帮助需要的同学。我出问题的系统是ubuntu20.04,修复之后,我观察了Windows的文件结构,发现是一样的,所以推论方法在Windows平台亦适用。

解决方法:

找到虚拟机目录,下面有一个“vmware.log”文件,将“xxxx DICT --- CONFIGURATION xxx”行到“xxxx DICT --- USER DEFAULTS xxx”行,中间的内容复制下来,注:xxxx是行的开头,包括时间等信息,xxx是路径。注意,我看了别的几个帖子,“dict”和“configuration”之间的“-”是两个,我实际观察的是3个,可能由于vm版本不同吧。如下图所示:

复制出来之后,将每一行“DICT”前面的及“DICT”删除,然后每行顶格。

 最后将这部分内容保存成“你自己的虚拟机名称.vmx”替换原来的".vmx"文件即可,记得替换前备份下,尽管他已经坏了。

下面是自动提取的python脚本。

path = input('输入vmware.log文件路径,包括文件名:')
if '"' in path:
    path = path.replace('"','')
print('输入的路径是:',path)
f = open(path,'r+',encoding='utf-8')
text = f.readlines()
texts=[]
copy=[]
startCopy = False
for i in range(0,len(text)):
    if 'DICT --- USER DEFAULTS' in text[i] and startCopy == True:
        break
    if startCopy == True:
        copy.append(text[i])
    if 'DICT --- CONFIGURATION' in text[i]:
        startCopy = True
    
f.close()

for i in range(0,len(copy)):
    cache = copy[i].split('=')
    texts.append(cache[0].replace(' ','').split('DICT')[1]+'='+cache[1])
path = path.split('.')[0]+'-result.txt'
f = open(path,'a+',encoding='utf-8')
f.writelines(texts)
f.close()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值