应依次执行五步操作:一、在vmware首选项中调低主机内存保留量并启用内存压缩;二、编辑config.ini添加userecommendedlockedmemsize和minvmmempct参数;三、扩大系统虚拟内存至物理内存1.5–3倍并启用vmware内存交换;四、修改.vmx文件降低memsize值并禁用内存预分配;五、在config.ini中添加vmmon.disablehostparameters并重启系统。

当VMware提示“物理内存不足,无法使用配置的设置开启虚拟机”时,通常并非宿主机实际内存总量不足,而是VMware对可用内存施加了默认限制,或虚拟内存交换机制未合理启用。以下是针对性的解决步骤:
一、解除VMware首选项中的内存限制
VMware Workstation 或 Fusion 默认会预留部分内存并限制可分配总量,通过修改首选项可释放该限制,使虚拟机更充分地利用宿主机空闲内存。
1、启动VMware Workstation(或Fusion),点击顶部菜单栏的编辑 → 首选项(Windows/Linux)或VMware Fusion → 设置(macOS)。
2、在首选项窗口中,选择内存选项卡。
3、将保留给主机系统的内存滑块调至最小值(如64MB或系统建议最低值)。
4、在额外内存用于虚拟机交换选项中,选择允许尽可能多的内存用于虚拟机(即“Allow most”)。
5、勾选启用内存压缩(Enable memory compression)以提升内存使用效率。
6、点击确定保存设置,并重启VMware应用程序使更改生效。
二、手动编辑config.ini文件放宽内存策略
config.ini是VMware全局配置文件,其中包含影响内存分配的关键参数。修改后可绕过界面限制,强制VMware按更高比例使用物理内存。
1、关闭所有正在运行的VMware进程,包括后台服务。
2、打开文件资源管理器,导航至:
Windows路径:C:\ProgramData\VMware\VMware Workstation\config.ini
macOS路径:/Library/Preferences/VMware Fusion/config
3、右键config.ini文件,选择以记事本(或文本编辑)打开。
4、在文件末尾另起一行,添加以下两行配置:
prefvmx.useRecommendedLockedMemSize = "TRUE"
prefvmx.minVmMemPct = "1"
5、保存文件,确保文件权限未被只读锁定,必要时以管理员身份保存。
6、重新启动VMware并尝试开启虚拟机。
三、优化虚拟内存交换文件配置
VMware依赖宿主机的交换空间(pagefile.sys或swapfile)作为内存补充。若交换文件过小或位置受限,将直接触发内存不足错误。
1、在Windows中,右键“此电脑”→“属性”→“高级系统设置”→“性能”下的“设置”→“高级”→“虚拟内存”→“更改”。
2、取消勾选自动管理所有驱动器的分页文件大小。
3、选中系统盘(通常是C:),选择自定义大小,将初始大小设为物理内存的1.5倍,最大值设为物理内存的3倍(例如16GB内存对应24576MB–49152MB)。
4、点击“设置”后重启计算机,确保新交换文件生效。
5、在VMware中,进入虚拟机设置→选项→高级→内存控制,确认启用内存交换(Enable memory swapping)已勾选。
四、调整单个虚拟机的内存分配与锁定策略
即使全局配置已优化,单个虚拟机仍可能因锁定内存(locked memory)过高而失败。需在.vmx文件中显式降低锁定需求并匹配宿主机可用量。
1、确保目标虚拟机关机(非挂起)。
2、在虚拟机所在文件夹中,用记事本打开同名.vmx文件。
3、查找或添加以下三行:
memsize = "8192"
mainMem.useNamedFile = "FALSE"
mainMem.partiallyReserve = "FALSE"
4、将memsize值设为不超过宿主机当前可用物理内存的70%(例如可用10GB则设为7168)。
5、保存.vmx文件,不要修改文件扩展名或编码格式,建议保存为UTF-8无BOM。
6、重新加载虚拟机配置并启动。
五、禁用VMware内核模块的主机参数校验
部分版本VMware(尤其是Workstation 17+)在较新Windows内核上会因严格参数校验拒绝启动。通过禁用该校验可跳过内存参数冲突检测。
1、关闭所有VMware进程,包括vmware-tray和vmware-authd服务。
2、再次打开config.ini文件(路径同第二步)。
3、在文件末尾新增一行:
vmmon.disableHostParameters = "TRUE"
4、保存后以管理员身份运行命令提示符,执行:
net stop vmware-hostd && net start vmware-hostd
5、必须重启宿主机操作系统,否则该参数不生效。











