在网上和 YouTube 视频上进行了大量研究并尝试了所有建议的解决方案但都失败后,我需要您的专业帮助。
在 Ubuntu 18.4 上安装了 VMWare 工作站 15(请参见屏幕截图)并出现内核错误。
这些是我已经执行过但没有解决方案的步骤:
sudo vmware-modconfig --console --install-all
注册一个新密钥并按以下命令进行登记:
运行 OpenSSL:
openssl req -new -x509 -newkey rsa:2048 -keyout VMWARE.priv -outform DER -out VMWARE.der -nodes -days 36500 -subj "/CN=VMWARE/"
跑步
sign-file
:sudo /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 ./VMWARE.priv ./VMWARE.der $(modinfo -n vboxdrv)
跑步
tail
:tail $(modinfo -n vboxdrv) | grep "Module signature appended"
跑步
mokutil
:sudo mokutil --import VMWARE.der
然后我重新启动-->启动成功后注册密钥并确认:
mokutil --test-key VMWARE.der
还可以通过以下方式手动注册驱动程序:
sudo /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 ./VMWARE.priv ./VMWARE.der $(modinfo -n vmmon)
最后:
sudo /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 ./VMWARE.priv ./VMWARE.der $(modinfo -n vmnet)
请注意,我是 Linux 世界的新手,因此如果能提供分步说明我将非常感激!
答案1
接受的答案是可以的,但需要对格式和步骤进行更好的调整,添加预期的反馈等。OP 有一些关于 VirtualBox 的信息,如果你没有这些信息,就会出现令人困惑的错误。
这个问题的发生本质上是因为安全启动不允许内核模块在未经可信证书数字签名的情况下加载。所以我们需要创建一个可信密钥并使用它来对新编译的模块进行签名vmmon
。vmnet
这些说明已针对 VMWare 15 和 Ubuntu 18.04 至 19.04 进行了测试。
安装 VMWare
运行此
sudo vmware-modconfig --console --install-all
您会发现监视器和网络存在问题,没关系。
生成密钥
openssl req -new -x509 -newkey rsa:2048 -keyout VMWARE15.priv -outform DER -out VMWARE15.der -nodes -days 36500 -subj "/CN=VMWARE/"
您将会看到表明一切正常的信息。
使用我们刚刚生成的密钥来签署两个内核模块。
sudo /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 ./VMWARE15.priv ./VMWARE15.der $(modinfo -n vmmon) sudo /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 ./VMWARE15.priv ./VMWARE15.der $(modinfo -n vmnet)
这没有提供任何反馈
检查签名是否正确应用。
tail $(modinfo -n vmmon) | grep "Module signature appended"
你应该得到Binary file (standard input) matches
现在,我们使用以下命令将此密钥导入机器所有者密钥 (MOK) 管理系统,以使该密钥受到信任。这里您可以在 Linux 中阅读有关 MOK 的工作的更多信息。
sudo mokutil --import VMWARE15.der
这将要求您输入密码,请输入一些较长的新密码,例如1515vmware
。重新输入相同的密码。
重新启动,重新启动时您应该会看到一个带有蓝屏背景的菜单,您必须设法注册密钥并输入刚刚创建的密码,这只会发生一次,然后继续启动。
要测试驱动程序/模块是否正确安装,请输入命令
mokutil --test-key VMWARE15.der
您应该得到VMWARE15.der is already enrolled
,这意味着 VMWare 应该可以正常工作。
所有荣誉归功于 OP。
注意:我发现在涉及内核(或类似内容)的一些 Linux 更新之后,此修复将停止工作,您必须再次执行所有步骤才能使其再次工作。(无需重新安装 vmware)
答案2
我编写了一个简单的 bash 脚本,使这个过程实现了少量自动化。这似乎是修补 Ubuntu 时反复出现的问题,我每次都发现自己在 Google 上搜索解决方案。
cd /tmp
wget https://raw.githubusercontent.com/rune1979/ubuntu-vmmon-vmware-bash/master/wm_autoupdate_key.sh
chmod +x wm_autoupdate_key.sh
./wm_autoupdate_key.sh
您还可以在我的 github 仓库(https://github.com/rune1979/ubuntu-vmmon-vmware-bash)
答案3
问题解决了!我按照原帖中的步骤操作,只是将密钥名称更改为其他名称!新密钥成功在 dev 目录中对 vmmon 进行了签名,并且 vmware 正常运行!
答案4
就我而言,尝试从 VMware Player 启动虚拟机时也遇到了这些错误。我没有使用安全启动,但我在运行 Ubuntu 16.04 时安装了 VMware Player。当时 VMware 运行良好。一周前,我升级到 Ubuntu 18.04,这些问题就是从那时开始的。对我来说,我所要做的就是 OP 指出的第一步:
$ sudo vmware-modconfig --console --install-all
无需卸载或重新安装应用程序或签署任何内核模块。您甚至不需要重新启动 - 只需再次启动 VMware Player 即可。