最近不知道是因为插入了新的USB键盘鼠标还是升级了macOS的版本,导致VMware一直启动不了,一直显示如下,不管是重装VMware还是降级到低版本,然后重启无数次都试过了,就是搞不定。
终于今天在google了一番之后,找到这个博客:https://xs3c.co/archives/556
按照这篇博客说的,我试了一下:
$ kextstat |grep vm [19:13:37]
172 1 0xffffff7f85e93000 0x11000 0x11000 com.vmware.kext.vmci (90.8.1) D47D022D-2993-3168-99B1-B37238CA81D6 <12 5 4 3 1>
173 0 0xffffff7f85ea4000 0x16000 0x16000 com.vmware.kext.vmnet (0666.50.85) 0940873B-8C20-357C-B00E-68FD5512BDDC <172 5 4 3 1>
果然并没有四个驱动,而只有两个。于是在/Library/LaunchDaemons
目录下用root权限新建一个plist文件,文件名可以自定义,我的是
$ sudo touch /Library/LaunchDaemons/com.cqq.autostartvmmon.plist
然后将内容写进去。
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>KeepAlive</key>
<false/>
<key>Label</key>
<string>com.cqq.autostartvmmon</string>
<key>ProgramArguments</key>
<array>
<string>/sbin/kextload</string>
<string>/Applications/VMware Fusion.app/Contents/Library/kexts/vmmon.kext</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>StandardErrorPath</key>
<string>/dev/null</string>
<key>StandardOutPath</key>
<string>/dev/null</string>
<key>UserName</key>
<string>root</string>
</dict>
</plist>
注意
1. 其中的<string>com.cqq.autostartvmmon</string>
为该脚本本身的名字去掉.plist。
2. <string>/Applications/VMware Fusion.app/Contents/Library/kexts/vmmon.kext</string>
中VMware的路径根据你自己的实际情况设置。
最后,
$ sudo plutil -convert binary1 com.cqq.autostartvmmon.plist
$ launchctl load -w /Library/LaunchDaemons/com.cqq.autostartvmmon.plist
然后重新启动。再查看驱动加载情况:
$ kextstat |grep vm [19:22:33]
156 0 0xffffff7f85da8000 0x11000 0x11000 com.vmware.kext.vmx86 (0666.50.85) 3DCD4588-D726-3183-A0A9-75CD8981225C <7 5 4 3 1>
172 1 0xffffff7f85e30000 0x11000 0x11000 com.vmware.kext.vmci (90.8.1) D47D022D-2993-3168-99B1-B37238CA81D6 <12 5 4 3 1>
173 0 0xffffff7f85e41000 0x16000 0x16000 com.vmware.kext.vmnet (0666.50.85) 0940873B-8C20-357C-B00E-68FD5512BDDC <172 5 4 3 1>
174 0 0xffffff7f85e57000 0x6000 0x6000 com.vmware.kext.vmioplug.17.1.2 (17.1.2) F26862BB-BB5C-31CC-BA5B-4C0CE75BA278 <58 5 4 3 1>
终于有4个了,VMware也可以加载虚拟机了。