VMWare Fusion: Could not open /dev/vmmon error
After updating to Yosemite the only trouble I have is that VMWare Fusion (Professional Version 5.0.5 if that helps) fails to start showing following error:
Could not open /dev/vmmon: No such file or directory. Please make surethat the kernel module `vmmon' is loaded.
I've tried to google the issue but the only relevant thing found was this:
The Mac has a certain amount of devices it can register in the /dev/ directory ..., virtual devices like virtualization software and VPN clients also create devices in this directory quickly filling up the number to the limit. To solve this I went through my installed applications and removed every VPN client and VM software that I don’t require any longer and rebooted my machine. After the reboot everything worked immediately.
But even if this is true, I just can not get rid of my VPN client for example. So, I still have no idea what steps I should take to solve the issue. I'll be very much obliged for any hint how to fix this problem.
Solution 1:
After having this issue with macOS High Sierra and VMWare Fusion 8.5.8, I was able to resolve it by allowing the system extension as described in http://planetvm.net/blog/?p=3240
In short; open System Preferences, click Security & Privacy, and from the General tab you should see a message stating System software from developer "VMware, Inc." was blocked from loading. Clicking the Allow button resolved the issue for me.
Solution 2:
It looks like simply unloading a kernel extension which is using one of the major character devices is enough to get around the problem. For example, I had /dev/HAX
so I was looking for instructions for uninstalling HAXm. I found https://stackoverflow.com/questions/38354287/uninstalling-intel-haxm-on-mac-el-capitan which mentioned running sudo kextunload -b com.intel.kext.intelhaxm
. After I did that, I was able to start a VMWare Fusion virtual machine without having to reboot.
Solution 3:
In case anyone is running into this with VMware Fusion 6 on Yosemite... I had the same issue and it seems OS X only has a limited amount of major device numbers, which are used by many different device drivers. VMware Fusion tries to load its device drivers on app startup, so if every major device number is already occupied, the drivers won't start.
A VMware employee presented some ways to find out which drivers are using major device numbers in this post: https://communities.vmware.com/message/2341918#2341918
When I ran ls -l /dev/ | grep '^c' | sort -nk 5
I discovered that FUSE for OS X and Tuxera NTFS each appeared about 20 times. I don't know for sure how to stop/restart these drivers - I had the luck that FUSE for OS X asked to update itself after I opened its preferences pane, this caused all fuse devices to disappear.
After this, VMware Fusion was able to its drivers and the VMs booted again.
Edit: I had the same issue again after using a VeraCrypt mounted image. This command line unloads the FUSE for OS X kernel extension if no filesystems are mounted:
sudo kextunload -b com.github.osxfuse.filesystems.osxfusefs