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

Я вижу пару предупреждающих сообщений, но ошибок нет, следовательно, действительно сбивает с толку случай отсутствия и выгрузки 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)

Твой мудрый совет я отчаянно ищу.

5 ответов

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

Эта команда исправила это для меня

Отключение безопасной загрузки из UEFI - плохой ответ, но это официальный ответ на форуме VMWare.

У меня была похожая проблема при установке VirtualBox, и я смог решить проблему с VMWare тем же методом. Это позволяет мне включить безопасную загрузку, а также использовать VMWare.

Проблема в том, что модуль ядра vmware не подписан, поэтому не может быть загружен при включенной безопасной загрузке. Однако вы можете "самостоятельно подписать" модуль, что я и сделал для рабочей станции VMWare и 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.

Возможно, ваша проблема с 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
    

(ПРИМЕЧАНИЕ: связанный VMWare KB пропускает sudo что вызовет проблемы)

  1. Подтвердите пароль для этого запроса на регистрацию в MOK.
  2. Перезагрузите свою машину. Следуйте инструкциям для завершения регистрации с консоли UEFI.

Цитируется из этой статьи VMWare: https://kb.vmware.com/kb/2146460

Просто отключите безопасную загрузку из опций UEFI.

https://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2103112

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

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

Другие вопросы по тегам