我们有一台 CentOS 6.3 服务器,其中安装了适用于 Linux 64 位的 VMware-Player-5.0.2
当我们尝试使用 VMware 播放器运行其中一个“.vmx”虚拟机文件时,出现以下错误
无法打开 /dev/vmmon:没有该文件或目录。请确保已加载内核模块“vmmon”
可能是什么原因?你们能建议我们如何启动 VMware Player 来打开虚拟机吗?
谢谢!
答案1
嗯,好像 vmmon 内核模块没有加载;-)
因此尝试“modprobe vmmon”(以 root 身份),如果不奏效,可能需要启动这两个命令:
sudo mv /usr/lib/vmware/modules/binary /usr/lib/vmware/modules/binary.old sudo vmware-modconfig --console --install-all --appname="VMware Player" --icon="vmware-player"
(顺便说一下,在 VMware 论坛上发现的)
答案2
如果您的主机启用了安全启动,则不允许加载任何未签名的驱动程序。因此,无法加载 vmmon 和 vmnet 模块。这会阻止虚拟机启动。
为了解决这个问题,您必须使用 openssl 生成一个密钥对来签署 vmmon 和 vmnet 模块:
$openssl req -new -x509 -newkey rsa:2048 -keyout VMK.priv -outform DER -out VMK.der -nodes -days 36500 -subj "/CN=VMware/"
(使用您想要的任何名称代替 VMK。)
通过运行以下命令,使用生成的密钥对模块进行签名:
$sudo /usr/src/linux-headers-`uname -r`/scripts/sign-file sha256 ./VMK.priv ./VMK.der $(modinfo -n vmmon)
$sudo /usr/src/linux-headers-`uname -r`/scripts/sign-file sha256 ./VMK.priv ./VMK.der $(modinfo -n vmnet)
导入公钥:
$mokutil --import VMK.der
确认密码并重新启动计算机。按照说明从 UEFI 控制台完成注册。
答案3
vmmon 模块为系统提供 VMware 虚拟机管理程序。但如果已加载另一个虚拟机管理程序,则无法加载该模块。
通常这是 KVM。检查模块kvm
或kvm_intel
或是否kvm_amd
已加载。如果已加载,则应停止所有虚拟机,停止 libvirtd 服务,然后卸载模块。
如果您安装了 VirtualBox,也可能是该软件。在这种情况下,请停止其虚拟机和服务,并卸载其模块。