
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
몇 가지 경고 메시지가 표시되지만 오류는 없습니다. 따라서 누락되거나 로드할 수 없는 경우는 실제로 당혹스럽습니다.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)
나는 당신의 현명한 조언을 간절히 구합니다.
답변1
sudo vmware-modconfig --console --install-all
이 명령으로 문제가 해결되었습니다.
답변2
UEFI에서 보안 부팅을 비활성화하는 것은 좋지 않은 답변이지만 VMWare 포럼의 공식 답변입니다.
VirtualBox를 설치할 때 비슷한 문제가 있었고 문제를 해결했습니다. VM웨어같은 방법으로 문제를 풀어보세요. 이를 통해 보안 부팅을 활성화하고 VMWare도 사용할 수 있습니다.
문제는 vmware 커널 모듈이 서명되지 않아 보안 부팅이 활성화될 때 로드되지 않는다는 것입니다. 그러나 VMWare 워크스테이션과 VirtualBox 모두에 대해 제가 했던 것처럼 모듈에 "자체 서명"할 수 있습니다.
- 이 포럼 게시물로 이동하세요.https://forums.virtualbox.org/viewtopic.php?f=7&t=77363&start=15
- 2016년 5월 6일 08:37에 Fayce66이 게시한 게시물로 이동하세요.
- 각 명령에서 커널 모듈 "vboxdrv"(virtualbox 모듈 이름)를 "vmmon"(vmware 모듈 이름)으로 교체합니다.
- 커널 모듈 "vmnet"(vmware 네트워크 모듈)에 대해 모든 명령을 다시 수행해야 할 수도 있습니다.
이 단계는 나에게 효과적이었습니다. 보안 부팅을 활성화하고 VMWare Workstation을 사용할 수 있습니다.
답변3
VMware Workstation 12의 문제는 다음과 같습니다.
보안 모드가 활성화된 Linux 호스트에서는 서명되지 않은 드라이버를 로드할 수 없습니다. 이로 인해 vmmon 및 vmnet과 같은 VMware 드라이버를 로드할 수 없어 가상 머신의 전원이 켜지지 않습니다.
보안 부팅을 끄지 않고 이 문제를 해결하려면 터미널에서 다음을 수행하여 드라이버에 자체 서명할 수 있습니다.
vmmon 및 vmnet 모듈에 서명하기 위해 openssl을 사용하여 키 쌍을 생성합니다.
openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj "/CN=VMware/"
(MOK를 키에 대해 원하는 파일 이름으로 바꾸십시오.)
다음 명령을 실행하여 생성된 키를 사용하여 모듈에 서명합니다.
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)
다음 명령을 실행하여 공개 키를 시스템의 MOK 목록으로 가져옵니다.
sudo mokutil --import MOK.der
이 MOK 등록 요청에 대한 비밀번호를 확인하세요.
- 컴퓨터를 재부팅하십시오. 지침에 따라 UEFI 콘솔에서 등록을 완료하세요.
이 VMWare 기사에서 인용:https://kb.vmware.com/kb/2146460
답변4
VMWARE vmnet
와 vmmon
파일을 다운로드, 추출, 빌드하는 데 도움이 되는 자동화된 쉘 스크립트를 작성합니다. 이를 실행하면 문제가 해결됩니다.
여기에서 시도해 보세요 ->vmware-호스트-모듈-빌더-cli 문제가 발생하면 문제를 생성하세요.