问题:
前几天,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()