在Linux中安装 Vmware Workstation 实现虚拟化

在工作和学习中,我难免会频繁使用 Linux。尤其是做 AI 相关开发时,很多环境几乎都和 Linux 强绑定,不得不用。
但在日常开发或工作里,我也经常需要用虚拟化去跑一些临时程序。之前在 Windows 上,我最常用的虚拟化软件是 VMware Workstation Pro,主要是为了在 Windows 环境里部署一些只能在 Linux 运行的程序,或者用来跑 Docker 相关的东西。
后来接触 AI 之后又遇到新的问题:AI 训练/推理往往需要显卡支持,而普通虚拟机环境很多时候并不能很好满足;可如果把这些环境直接装在我现在日常使用的 Linux 系统里,又总觉得会把系统弄得很“脏”。果然还是左右脑互搏这一块还是太权威了。(乐)
所以这篇文章就来分享一下,如何在 Linux 中安装 VMware Workstation Pro。
1. 环境要求
VMware Workstation Pro 在2025年06月修改了他们对免费产品的使用和下载条约,如果你要想使用那么还要挂上梯子去他们官网注册,否则网络上除了 17.5 以下的应该你都下载不到了。
如果你是 Ubtune 24.02 以上的桌面版,其内核版本高于 6.8 我建议你直接使用 Vmware Workstation Pro 25H2版本。如果你低于这个内核你可以使用 Vmware Workstation Pro 17.6.x (最好不要低于此版本)
CPU:支持硬件虚拟化技术(Intel VT-x 或 AMD-V),需在 BIOS/UEFI 中启用(关键!)
内存:至少 4GB RAM(建议 8GB+,需为虚拟机预留足够资源,例如计划运行 2 个 VM 则需 8GB+ 物理内存)。
存储:至少 20GB 空闲磁盘空间
显卡:支持 OpenGL 2.1+(用于 3D 加速,可选),Genome桌面环境
注册Broadcom 官网 获取适用于Linux的安装包:https://support.broadcom.com/

注册登录之后你就应该可以进入:https://support.broadcom.com/group/ecx/my-dashboard 这个网页了,按照下图操作即可。



无脑下载版:网盘 https://cloud.189.cn/web/share?code=YnMj2qQbQfim(访问码:sg7p) 附带 windows 25H2
2. 安装
# 进入安装包所在位置
cd ~/下载
# 给安装包运行权限 文件名取决于你下载的文件的名字
chmod +x VMware-Workstation-Full-25H2-24995812.x86_64.bundle
# 使用管理员权限安装
sudo ./VMware-Workstation-Full-25H2-24995812.x86_64.bundle在第一次启动的时候会有一些选项需要你确定,全部选择yes即可,第三页有一个是否允许系统启动自动启动Vmware你可以按照自己的使用频率决定是否拒绝。
(would you like to check product updates on startup? | NO)
3. 创建一个虚拟机
打开软件,应该是除了页面是英文,UI是Genome风格应该都是可以看得懂的,很简单对于老程序员来说。
在My Computer 栏空白地方右键我们可以看到一些选项,


我们创建一个文件夹然后尝试创建一个虚拟机试试,选择推荐安装模式,选择一个ISO文件准备安装

选择虚拟机安装的位置和虚拟机的名字,设置磁盘大小

最后确定硬件规格即可,如果不满意可以DIY自己设置更高的 CPU,内存 硬盘大小

25H2 新版本支持 类似核显的3D加速特性,你可以在显示中找到,勾选然后选择显存大小;注意你的显存是从你虚拟机的内存中隔离出来的一部分,如果你16G内存,显存设置8G,你的RAM应该是 8G ,VRAM (显存)8G 当然不要想多了,打不了驱动 用不了AI,至少桌面流畅度会高一点
我这边演示用的是 Centos7.9 mini 本来没有桌面,我这边不使用
解决问题1:
创建了虚拟机但是远程连接怎么都连接不上Nat模式,奇怪的是 Linux 正常发IP并且可以上网但是宿主机没有访问NAT网络网关和内部设备的权利。按照如下图所示设置网络选项既可,重点是勾选 VM8网卡的允许宿主机访问

解决问题2:
省流:需要给软件设置一个授权的证书,不然在Bios中就会被拦截,内核无法处理核心组件
启动虚拟机的时候显示一个模块报错了,显示大开不了/dev下的一个文件,经过排查发现是我开启了 Ubtune24.02 的体验计划,我自动更新现在内核版本太高了,需要降级,这边劝告大家竟然用Ubtune了就不要随意更细和升级了。


lsmod | egrep '^(vmmon|vmnet)\b' || true
modinfo vmmon 2>/dev/null | head -n 5
sudo modprobe -v vmmon
sudo modprobe -v vmnet
dmesg -T | tail -n 80AI给出的解决方案,我建议使用B 我已成功修复正常
modprobe: ... Key was rejected by service(vmmon、vmnet 都一样)
这几乎就是 Secure Boot / 内核模块签名策略导致的:系统开启了 UEFI Secure Boot(或处于内核 lockdown),未签名/未被信任的第三方模块不能加载。
另外你 dmesg 显示“读取内核缓冲区失败: 不允许的操作”,说明你当前用户即使 sudo 也读不到 dmesg(通常也是 lockdown/权限策略),不影响结论。
解决办法两条路,选一种即可。
方案 A(最快):在 BIOS/UEFI 关闭 Secure Boot
重启进 BIOS/UEFI 设置(常见按 F2/Del/F10,不同机型不一样)
找到 Secure Boot,设为 Disabled
保存退出,进系统后再加载模块:
sudo modprobe vmmon sudo modprobe vmnet sudo vmware-modconfig --console --install-all然后再开 VMware,/dev/vmmon 就会出来。
方案 B(不关 Secure Boot):给 VMware 模块做 MOK 签名并导入
1.确认 Secure Boot 状态(可选,但建议) mokutil --sb-state如果显示 enabled,继续本文步骤。
2.安装所需工具
sudo apt update
sudo apt install -y mokutil openssl linux-headers-$(uname -r)3.生成 MOK 证书(放在当前用户目录,不用 root 账号)
建议把密钥放在你的 home 下,避免 /root 权限问题,也更便于备份与复用:mkdir -p ~/module-signing openssl req -new -x509 -newkey rsa:2048 \ -keyout ~/module-signing/MOK.priv \ -outform DER -out ~/module-signing/MOK.der \ -nodes -days 3650 \ -subj "/CN=VMware Module/"
确认文件已生成:
ls -l ~/module-signing应能看到
MOK.priv和MOK.der。说明:
MOK.priv是私钥(务必妥善保管,不要泄露)。
MOK.der是公钥证书(用于导入 MOK)。
4.导入证书到 MOK(会要求设置一次性密码)
sudo mokutil --import ~/module-signing/MOK.der系统会提示你输入一个一次性密码(用于下一次重启时在 MOK Manager 界面确认)。记住它。
5.重启并在 MOK Manager 完成 Enroll
重启后会出现蓝色界面 “MOK Manager”,按下列流程操作:
Enroll MOK
Continue
Yes
输入你刚才设置的一次性密码
Reboot
完成后系统会再次重启进入 Ubuntu。
6.确认证书已 Enroll(建议)
mokutil --list-enrolled | grep -i "VMware Module" -n || true
mokutil --test-key ~/module-signing/MOK.der--test-key 通常会显示 “already enrolled” 或类似信息。
7.找到 vmmon/vmnet 模块真实路径
不要假设一定在 misc/ 目录。用 modinfo 查准路径:
示例输出可能类似:
/lib/modules/6.x.x-xx-generic/misc/vmmon.ko
/lib/modules/6.x.x-xx-generic/misc/vmnet.ko
modinfo -n vmmon
modinfo -n vmnet8.对模块签名(关键步骤)
把上一步得到的实际路径填进去。假设路径如示例:
sudo /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 \
~/module-signing/MOK.priv ~/module-signing/MOK.der \
/lib/modules/$(uname -r)/misc/vmmon.ko
sudo /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 \
~/module-signing/MOK.priv ~/module-signing/MOK.der \
/lib/modules/$(uname -r)/misc/vmnet.ko签名后刷新模块依赖:
sudo depmod -a9.加载模块并验证
sudo modprobe vmmon
sudo modprobe vmnet- 感谢你赐予我前进的力量

