事情出现在上午第一节网络攻防实验课,要安装VMware。之前一切很顺利,第一次打开却出现了如下场景:
Before you can run Vmware, several modules must be compiled and loaded into the running kernel.
单击install
之后等待一段时间,弹出了一个Error,Unable to start services. See log file /tmp/vmware-root/vmware-xxxxx.log for details.
,接着便无法打开VMware:
log文件中,显示一部分的Vmware一个vmnet组件没有正确被编译。网络上几乎所有的手段都尝试过了,依旧没能生效,浪费了一个上午。
助教给的一个解决办法是更新Linux Kernel Headers
:
sudo apt-get update && sudo apt-get install build-essential linux-headers-$(uname -r)
但是我明明已经安装了最新的Headers。通过uname -r
来查询,可以得到我的内核版本是5.3.0-42-generic
,应该不会低的。
又经过一阵查询,我发现不是我的内核版本太低,恰恰相反,对于助教给的15.0.4版本的VMware,版本太高了。官网上也有人反映了这个问题,回答说之后的版本已经解决了。所以我们解决的方式也很简单,只能下载最新版本的VMware15.5。当然,尝试安装低版本的Linux Kernel Headers
可能也能解决,但是不知道会不会冲突。没必要继续折腾了。
如果使用一段时间之后再次出现这种状况,依旧不能编译的话,需要重装vmware。这是因为你的Linux Kernel Headers已经自动更新了。