欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

linux系统安装VMware(详细解决"Cannot open /dev/vmmon: No such file or directory"问题)

程序员文章站 2022-07-15 22:24:30
...

系统及软件版本

ubuntu 18.04 , VMware Workstation 15 pro

1.安装依赖

在安装VMware之前先要安装其所需的依赖(在ubuntu 18.04系统中,这些依赖可能已经被安装,如果没有的话,安装命令如下):

sudo apt install build-essential gcc
sudo apt install libcanberra-gtk-module

2.下载安装包

进入VMware官网下载安装包。(下载时要求注册一个账号,注册成功并登录之后即可进行下载)。

3.运行安装包

运行安装包之前需要先给安装包赋予权限,具体命令如下:
(1)进入安装包所在目录

chmod +x VMware-Workstation-Full-15.0.2-10952284.x86_64.bundle

(2)执行该文件

sudo ./VMware-Workstation-Full-15.0.2-10952284.x86_64.bundle

(3)之后根据安装向导一步步执行安装即可(中间有一步让你输入**码,**码可以在网上搜到),安装结束后,大体上VMware就算安装完毕了。

4.运行VMware

安装成功后,打开VMware Workstation,开启一台虚拟机验证一下是否真的安装成功。
开启虚拟机时,若出现

“Cannot open /dev/vmmon: No such file or directory. Please make sure that the kernel module vmmon’ is loaded”

提示,查看以下解决措施。

出错原因

我们在进入BIOS界面中的启动选项时,可能会注意到有一个 ”secure boot“ 选项,而这就是出现问题的原因。简单来讲,这个 “secure boot” 就是在计算机主板上设置的一个安全保护措施,任何在主板上加载的操作系统或者硬件驱动程序运行时,都必须经过一个安全验证,而开启虚拟机时,VMware驱动器(其中的vmmon和vmnet组件)无法通过这个安全验证,不能运行,这就导致了虚拟机无法启动。

解决措施
措施一:简单粗暴法

我们知道了导致错误的原因是开启了"secure boot",那么最简单粗暴的方法就是在BIOS中禁止“secure boot”选项(往往是在BIOS中的启动或者安全选项中),但是这种方法的弊端也显而易见,降低了电脑的安全性,如果不想破坏电脑的安全性,则可以采取另一种方法。

措施二:添加“安全**”

首先要清楚“sercure boot”的安全验证是通过“安全**”机制来实现的,即每个操作系统或驱动程序必须对应一个“**对”,其中的“公钥”是内置与主板中的,“私钥”则附在自身上,只有”公钥“和“私钥”能够对应上,该程序才可以执行。我们要想让VMware驱动器运行,也必须为它创建“**对”。具体操作如下:

  1. 为vmmon和vmnet组件生成**对
openssl req -new -x509 -newkey rsa:2048 -keyout VMW.priv -outform DER -out VMW.der -nodes -days 36500 -subj "/CN=VMware/"

   VMW.der 是公钥,VMW.priv是私钥
   (其中的“VMW”是**的名字,也可以改成别的)

  1. 为vmmon和vmnet组件附上生成的**
sudo /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 ./VMW.priv ./VMW.der $(modinfo -n vmmon)
sudo /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 ./VMW.priv ./VMW.der $(modinfo -n vmnet)
  1. 将公钥插入系统的MOK列表中
sudo mokutil --import VMW.der

  这一步会让你创建一个密码,记住这个密码,一会儿有用。

  1. 重启电脑
    重启时会进入到一个类似于BIOS的界面(UEFI界面),这一步忘记截图了,总之,根据界面上的说明进行选择,完成**的插入(最后让输入的密码即为上一步设置的密码)。开启电脑后,VMware就能正常运行了。
相关标签: VMware Linux