最近在b站找了很多vmware虚拟机硬件修改教程,学习虚拟机去虚拟化。
无一例外,都是网卡的硬件ID修改这里卡壳了。
我发现我用x64dbg或winHex,根本就搜索不到官方安装的默认虚拟机中的网卡硬件ID,然后我就各种问AI啊。
最终我找到了问题所在:
ethernet0.virtualDev是VMware虚拟机配置文件(.vmx)中的关键参数,用于指定虚拟机的网卡类型,常见取值包括:
e1000:模拟Intel 82545EM千兆网卡(默认值)
e1000e:模拟Intel 82574L千兆网卡
vmxnet3:VMware原生万兆虚拟网卡(性能最佳)
vlance:兼容老系统的AMD PCNet网卡
修改方法:需在虚拟机关机状态下编辑.vmx文件,添加或修改类似内容:
ethernet0.virtualDev = "e1000"
这个参数我安装完虚拟机并没有设置过 ,17.6.3版本也许默认是e1000e吧。就这个问题,愣是折腾了我一整天,这下就跟所有教程的修改方法一样了。
当然仅仅是这样,我在原教程评论区跟帖回复也就行了。重点来了啊。我在用x64dbg调试的过程中发现了点不一样的东西:就是核心文件x64/vmware-vmx.exe有很多读vmx配置文件里的参数,我就看到了这么几个:
e1000e.pci.subVendorID
e1000e.pci.subDeviceID
e1000e.pci.deviceID
这一刻我忽然开窍了 从字面意思一看 这不明摆着可以不通过修改核心文件x64\wmware-vmx.exe,通过.vmx配置文件就可以设置e1000e网卡的硬件id吗?
通过aida64和鲁大师硬件检测,我发现这个网卡只有子系统ID里面有个虚拟机标识15AD 那就改它,.vmx配置文件后面加一条:
ethernet0.virtualDev = "e1000e"
e1000e.pci.subVendorID = "8086"
结果,有困惑了,再次检测 子系统ID 15AD变成1F96,这什么鬼,AI告诉我就这么改啊。。。那是怎么回事呢?怎么可以不对呢,然后我打开系统-附件-计算器 进制转换一看 原来十进制的8086 就是十六进制的1F96 我又悟了 原来这个参数的值应该是十进制的
正解:
e1000e.pci.subVendorID = "32902"
然后再进虚拟机 硬件检测 网卡硬件ID 15AD变成8086了
另外两个没用上的参数我没测试 感觉都差不多
结语:感谢B站,感谢B站上那些出视频教程的UP主,你们很伟大,没有你们的视频带我入门,我也没机会发现这些,如果我这篇文章能够帮助到大家,也希望大家有啥感觉可能对别人有帮助的视频啊 文章啊 都发出来分享一下 最起码可以帮助很多类似于我这样的小白 节约不少时间。如果大家在去虚拟化的过程中,还遇到什么问题,也可以一起留言讨论。