找不到或未加载VMware Workstation 12 vmmon


10

在Ubuntu 12.04上,我愉快地使用了VMware Workstation6。然后,一天,启动VM时发生了此错误:

Could not open /dev/vmmon: No such file or directory.
Please make sure that the kernel module `vmmon' is loaded.
Failed to initialize monitor device.

我不确定原因,但纯粹是出于推测,原因是升级了Nvidia驱动程序(这类似于拜访牙医的办公室,所以请不要告诉我再来弄乱图形驱动程序。 )
为了解决问题,我使用GUI安装程序更新了VMware Workstation 12。

gksudo bash xxxxx.bundle  

我认为在继续安装新版本之前先卸载旧版本已经足够聪明了。一切都很好,但是当我尝试启动虚拟机时出现了以上相同的问题。实际上,按照建议,我无法在系统中找到文件或目录/ dev / vmmon(在重新安装到较新版本之前也是如此)。
按照另一个明智的建议,我尝试了:

sudo vmware-modconfig --console --install-all

完整的输出(至少我会因缺乏详细信息而被否决)是这样的:

Stopping VMware services:
   VMware Authentication Daemon                                        done
   VM communication interface socket family                            done
   Virtual machine communication interface                             done
   Virtual machine monitor                                             done
   Blocking file system                                                done
Using kernel build system.
make: Entering directory `/tmp/modconfig-ha12A3/vmmon-only'
/usr/bin/make -C /lib/modules/3.13.0-49-generic/build/include/..    SUBDIRS=$PWD SRCROOT=$PWD/. \
  MODULEBUILDDIR= modules
make[1]: Entering directory `/usr/src/linux-headers-3.13.0-49-generic'
  CC [M]  /tmp/modconfig-ha12A3/vmmon-only/linux/driver.o
  CC [M]  /tmp/modconfig-ha12A3/vmmon-only/linux/driverLog.o
  CC [M]  /tmp/modconfig-ha12A3/vmmon-only/linux/hostif.o
  CC [M]  /tmp/modconfig-ha12A3/vmmon-only/common/apic.o
  CC [M]  /tmp/modconfig-ha12A3/vmmon-only/common/comport.o
  CC [M]  /tmp/modconfig-ha12A3/vmmon-only/common/cpuid.o
  CC [M]  /tmp/modconfig-ha12A3/vmmon-only/common/hashFunc.o
  CC [M]  /tmp/modconfig-ha12A3/vmmon-only/common/memtrack.o
  CC [M]  /tmp/modconfig-ha12A3/vmmon-only/common/phystrack.o
  CC [M]  /tmp/modconfig-ha12A3/vmmon-only/common/task.o
  CC [M]  /tmp/modconfig-ha12A3/vmmon-only/common/vmx86.o
  CC [M]  /tmp/modconfig-ha12A3/vmmon-only/vmcore/moduleloop.o
/tmp/modconfig-ha12A3/vmmon-only/linux/driver.c: In function   ‘LinuxDriver_Ioctl’:
/tmp/modconfig-ha12A3/vmmon-only/linux/driver.c:1983: warning: the frame size of 1280 bytes is larger than 1024 bytes
  LD [M]  /tmp/modconfig-ha12A3/vmmon-only/vmmon.o
  Building modules, stage 2.
  MODPOST 1 modules
WARNING: "mcount" [/tmp/modconfig-ha12A3/vmmon-only/vmmon.ko] undefined!
  CC      /tmp/modconfig-ha12A3/vmmon-only/vmmon.mod.o
  LD [M]  /tmp/modconfig-ha12A3/vmmon-only/vmmon.ko
make[1]: Leaving directory `/usr/src/linux-headers-3.13.0-49-generic'
/usr/bin/make -C $PWD SRCROOT=$PWD/. \
      MODULEBUILDDIR= postbuild
make[1]: Entering directory `/tmp/modconfig-ha12A3/vmmon-only'
make[1]: `postbuild' is up to date.
make[1]: Leaving directory `/tmp/modconfig-ha12A3/vmmon-only'
cp -f vmmon.ko ./../vmmon.o
make: Leaving directory `/tmp/modconfig-ha12A3/vmmon-only'
Using kernel build system.
make: Entering directory `/tmp/modconfig-ha12A3/vmnet-only'
/usr/bin/make -C /lib/modules/3.13.0-49-generic/build/include/..     SUBDIRS=$PWD     SRCROOT=$PWD/. \
  MODULEBUILDDIR= modules
make[1]: Entering directory `/usr/src/linux-headers-3.13.0-49-generic'
  CC [M]  /tmp/modconfig-ha12A3/vmnet-only/driver.o
  CC [M]  /tmp/modconfig-ha12A3/vmnet-only/hub.o
  CC [M]  /tmp/modconfig-ha12A3/vmnet-only/userif.o
  CC [M]  /tmp/modconfig-ha12A3/vmnet-only/netif.o
  CC [M]  /tmp/modconfig-ha12A3/vmnet-only/bridge.o
  CC [M]  /tmp/modconfig-ha12A3/vmnet-only/procfs.o
  CC [M]  /tmp/modconfig-ha12A3/vmnet-only/smac_compat.o
  CC [M]  /tmp/modconfig-ha12A3/vmnet-only/smac.o
  CC [M]  /tmp/modconfig-ha12A3/vmnet-only/vnetEvent.o
  CC [M]  /tmp/modconfig-ha12A3/vmnet-only/vnetUserListener.o
  LD [M]  /tmp/modconfig-ha12A3/vmnet-only/vmnet.o
  Building modules, stage 2.
  MODPOST 1 modules
WARNING: "mcount" [/tmp/modconfig-ha12A3/vmnet-only/vmnet.ko] undefined!
  CC      /tmp/modconfig-ha12A3/vmnet-only/vmnet.mod.o
  LD [M]  /tmp/modconfig-ha12A3/vmnet-only/vmnet.ko
make[1]: Leaving directory `/usr/src/linux-headers-3.13.0-49-generic'
/usr/bin/make -C $PWD SRCROOT=$PWD/. \
  MODULEBUILDDIR= postbuild
make[1]: Entering directory `/tmp/modconfig-ha12A3/vmnet-only'
make[1]: `postbuild' is up to date.
make[1]: Leaving directory `/tmp/modconfig-ha12A3/vmnet-only'
cp -f vmnet.ko ./../vmnet.o
make: Leaving directory `/tmp/modconfig-ha12A3/vmnet-only'
Starting VMware services:
   Virtual machine monitor                                            failed
   Virtual machine communication interface                             done
   VM communication interface socket family                            done
   Blocking file system                                                done
   Virtual ethernet                                                   failed
   VMware Authentication Daemon                                        done
Unable to start services

我看到一些警告消息,但没有错误,因此确实令人困惑,缺少vmmon且无法卸载。

跟随其他律师:

>> sudo /etc/init.d/vmware restart
Stopping VMware services:
   VMware Authentication Daemon                                        done
   VM communication interface socket family                            done
   Virtual machine communication interface                             done
   Virtual machine monitor                                             done
   Blocking file system                                                done
Starting VMware services:
   Virtual machine monitor                                            failed
   Virtual machine communication interface                             done
   VM communication interface socket family                            done
   Blocking file system                                                done
   Virtual ethernet                                                   failed
   VMware Authentication Daemon                                        done

>> sudo modprobe vmmon
FATAL: Error inserting vmmon (/lib/modules/3.13.0-49-generic/misc/vmmon.ko): Unknown symbol in module, or unknown parameter (see dmesg)

我拼命寻求你的明智顾问。


我试图从另一台工作站复制vmmon文件,该工作站与VMware兼容,但效果不佳。这是一个0字节的“特殊”文件。这是什么卑鄙的vmmon-ster ???
ng0323 2015年

我尝试从命令行手动卸载,然后重新安装最新版本(今天下载)并重复上述建议,但可惜我的努力徒劳!
ng0323 2015年

1
请尝试sudo vmware-modconfig --console --install-all
Charles Green

1
有启用ufi引导的解决方法吗?
rafaelphp

@CharlesGreen解决方案为我
TungstenX

Answers:



8

从UEFI禁用安全启动是一个糟糕的答案,但这是VMWare论坛上的官方答案。

安装VirtualBox时遇到了类似的问题,并设法使用相同的方法解决了我的 VMWare问题。这使我能够保持安全启动状态并使用VMWare。

问题是vmware内核模块未签名,因此启用安全启动时无法加载。但是,您可以“自签名”模块,这是我为VMWare工作站和VirtualBox所做的。

  1. 转到此论坛帖子:https : //forums.virtualbox.org/viewtopic.php?f=7&t=77363&start=15
  2. 前往Fayce66发表于2016年5月6日,08:37
  3. 在每个命令中,将内核模块“ vboxdrv”(virtualbox模块名称)替换为“ vmmon”(vmware模块名称)
  4. 您可能必须再次对内核模块“ vmnet”(vmware网络模块)执行所有命令。

这些步骤对我有用。我能够保持安全启动状态并使用VMWare Workstation。


如果原始链接断开,将把内容放在这里作为pastebin链接(因为可能太长了,无法在答案中阻塞引用
DeveloperACE

同样,该评论中的人引用了指向gorka.eguileor.com/vbox-vmware-in-secureboot-linux的链接(更新版本gorka.eguileor.com/vbox-vmware-in-secureboot-linux-2016-update)作为链接他的修复源可能对某人有所帮助
DeveloperACE


6

VMware Workstation 12的问题可能是...

在启用了安全模式的Linux主机上,不允许加载任何未签名的驱动程序。因此,无法加载VMware驱动程序(例如vmmon和vmnet),这会阻止虚拟机启动。

要在不关闭安全启动的情况下解决此问题,可以在终端上执行以下操作以对驱动程序进行自签名:

  1. 使用openssl生成密钥对以签名vmmon和vmnet模块:

    openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj "/CN=VMware/"
    

    (将MOK替换为您想要密钥的文件的名称。)

  2. 通过运行以下命令,使用生成的密钥对模块进行签名:

    sudo /usr/src/linux-headers-`uname -r`/scripts/sign-file sha256 ./MOK.priv ./MOK.der $(modinfo -n vmmon)
    sudo /usr/src/linux-headers-`uname -r`/scripts/sign-file sha256 ./MOK.priv ./MOK.der $(modinfo -n vmnet)
    
  3. 通过运行以下命令,将公钥导入系统的MOK列表:

    sudo mokutil --import MOK.der
    
  4. 确认此MOK注册请求的密码。

  5. 重新启动计算机。按照说明从UEFI控制台完成注册。

引用此VMWare文章:https : //kb.vmware.com/kb/2146460


这解决了我的问题,谢谢!只是一定要拥有sudo /usr/src/linux-headers-`uname -r`/scripts/sign-file sha256 ./MOK.priv ./MOK.der $(modinfo -n vmmon)sudo /usr/src/linux-headers-`uname -r`/scripts/sign-file sha256 ./MOK.priv ./MOK.der $ (modinfo -n vmnet)为每个链接的页面,并添加sudomokutil --import MOK.der使用上面打电话,用选项sudo passwd root之后sudo mokutil --import MOK.der --root-pw,如果如上不起作用。
坎伯恩

1

禁用安全启动并不是一个糟糕的答案。实际上,这是唯一适用于我的两台运行ubuntu 18.04 LTS和VMPlayer 14.x的计算机(台式机和笔记本电脑)的计算机。打开图像文件时出现问题。与其花费大量时间解决各种问题,不如暂时禁用安全启动,然后在加载并使用映像后再启用它,我建议这样做更好。
阿舒
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.