VMware Workstation 12 vmmon が見つからないかロードされていません

VMware Workstation 12 vmmon が見つからないかロードされていません

Ubuntu 12.04 で VMware Workstation 6 を快適に使用していました。ある日、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

警告メッセージはいくつか表示されますが、エラーは表示されません。そのため、欠落してロードできないケースは確かに不可解です。仮想マシン

他の助言に従う:

>> 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. 2016年5月6日 08:37 に Fayce66 が投稿した記事へ
  3. 各コマンドで、カーネルモジュール「vboxdrv」(virtualboxモジュール名)を「vmmon」(vmwareモジュール名)に置き換えます。
  4. カーネルモジュール「vmnet」(vmwareネットワークモジュール)のすべてのコマンドを再度実行する必要がある可能性があります。

これらの手順は私にとってはうまくいきました。セキュア ブートを有効にしたまま、VMWare Workstation を使用できます。

答え3

VMware Workstation 12 で問題が発生する可能性があるのは、次のとおりです。

セキュア モードが有効になっている Linux ホストでは、署名されていないドライバーをロードすることはできません。このため、vmmon や vmnet などの VMware ドライバーをロードできず、仮想マシンの電源をオンにできなくなります。

セキュア ブートをオフにせずにこれを修正するには、ターミナルで次の手順を実行してドライバーに自己署名します。

  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 の記事から引用:参考文献

答え4

vmnetVMWAREとファイルのダウンロード、抽出、ビルドを支援する自動化されたシェル スクリプトを作成しましたvmmon。これを実行すると問題が解決するはずです。

こちらからお試しください ->vmware ホスト モジュール ビルダー CLI 問題が発生した場合は、問題を作成してください。

関連情報