VMware Workstation 12 vmmon 未找到或未載入

VMware Workstation 12 vmmon 未找到或未載入

在 Ubuntu 12.04 上,我一直愉快地使用 VMware Workstation 6。

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

我看到一些警告訊息,但沒有錯誤,因此丟失和無法加載的情況確實令人困惑虛擬監視器

遵循其他建議:

>> 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)

我迫切尋求你明智的建議。

答案1

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

這個命令為我解決了這個問題

答案2

從 UEFI 停用安全啟動是一個糟糕的答案,但這是 VMWare 論壇上的官方答案。

我在安裝 VirtualBox 時遇到了類似的問題並設法解決了我的問題 虛擬機器軟體用同樣的方法出問題。這使我能夠保持啟用安全啟動並使用 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。

答案3

您的 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

答案4

我建立了一個自動 shell 腳本來幫助下載、提取和建置 VMWAREvmnetvmmon檔案。運行這個應該可以解決問題。

在這裡嘗試 ->vmware-主機模組-builder-cli 如果遇到任何問題,請建立問題。

相關內容