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 (это было похоже на визит к стоматологу, так что, пожалуйста, не говорите мне снова возиться с графическим драйвером).
В поисках решения я обновился до 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 не подписан, поэтому не загружается при включении безопасной загрузки. Однако вы можете "самоподписать" модуль, что я и сделал для VMWare workstation и VirtualBox.

  1. Перейти к этому сообщению на форуме:https://forums.virtualbox.org/viewtopic.php?f=7&t=77363&start=15
  2. Перейти к сообщению Fayce66 от 6 мая 2016, 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

Я создаю автоматизированный скрипт оболочки, который поможет загрузить, извлечь и собрать VMWARE vmnetи vmmonфайлы. Запуск этого должен исправить проблему.

Попробуйте здесь ->vmware-host-modules-builder-cli и создайте проблему, если у вас возникнут какие-либо проблемы.

Связанный контент