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

本文档详细记录了解决Ubuntu20.04虚拟机启动时遇到错误的过程。通过分析vmware.log文件,提取关键配置信息,对.vmx文件进行编辑修复。提供的Python脚本能帮助用户自动完成这个过程。修复后,作者观察到Windows平台的文件结构与Ubuntu相似,推测该方法同样适用于Windows。

问题:

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

### VMware 虚拟机报错解决方案 当遇到VMware虚拟机报错问题时,可以按照以下方法排查并解决问题。 #### 设备/Guard不兼容问题 如果收到“VMware Workstation 与 Device/Credential Guard 不兼容”的提示,则表明当前计算机启用了Device Guard Credential Guard 功能。这些安全特性会阻止Hyper-V以外的hypervisor运行,而VMware依赖于自身的hypervisor技术来创建和管理虚拟机环境[^1]。 为了使VMware正常工作,在BIOS设置中关闭基于硬件的安全功能(如Intel VT-d),并通过组策略编辑器禁用Windows设备保护模式以及凭证防护服务: ```powershell Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity" -Name "Enabled" -Value 0 bcdedit /set hypervisorlaunchtype off ``` 重启电脑之后再次尝试启动VMware应该能够成功绕过此错误消息。 #### 安装与启动失败处理办法 对于因其他原因引起的安装启动过程中的异常情况,建议先确认已正确安装适用于操作系统的最新版本软件包;其次检查是否有足够的磁盘空间可用,并确保防火墙未阻挡必要的端口访问权限[^2]。 另外还可以通过命令行工具查看更详细的日志信息以便进一步诊断具体位置: ```bash vmrun list vmware-vdiskmanager -k path_to_your_vm.vmx ``` #### 网络配置调整指南 针对新建立好的Ubuntu镜像无法上网的情况,通常是因为默认选择了NAT桥接方式而不是仅主机模式所致。进入虚拟机内部修改/etc/netplan/*.yaml文件内的静态IP设定部分为DHCP自动获取形式即可恢复联网能力[^3]: ```yaml network: version: 2 ethernets: ens33: dhcp4: true ``` 保存更改后执行`sudo netplan apply`让新的参数生效。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值