这几天要用到虚拟机,发现之前安装的Vmware Fusion上的Windows虚拟机启动之后,屏幕是全黑的,无法使用。赶紧去网上搜索Vmware Fusion黑屏的解决方案,照着介绍一步一步的解决了问题。
第一步:重新启动macOS,重启过程中,按住Command-R,进入到macOS的恢复模式。
第二步,点击屏幕左上工具栏的“实用工具”,然后在下拉菜单中点击“终端”,打开命令行窗口;
第三步,在命令行中输入下面的命令,关闭macOS的系统完整性保护机制。
csrutil disable
系统显示“Successfully disabled System Integrity Protection. Please restart the machine for the changes to take effect”,表明macOS的系统完整性保护机制已经成功关闭了。
第四步,修改vmware的配置,在系统TCC.db数据库中添加vmware Fusion的屏幕捕获(Screen Capture)、事件监听(Listen Event)、事件发送(Post Event)的权限。
我在macOS恢复模式下的终端上,没有找到TCC.db数据库。/Library目录下面没有“Application Support”文件夹。使用find命令,搜索TCC.db,没有搜到这个文件。
继续认真阅读找到的资料,发现TCC.db是在macOS的普通模式下进行修改的,不是在恢复模式下,哈哈。重启macOS系统,进入普通模式,打开命令行窗口,果然找到了TCC文件。
TCC.db文件的目录是“/Library/Application Support/com.apple.TCC/TCC.db”.
修改TCC.db的命令如下:
sudo chmod 777 com.apple.TCC sudo rm -fr com.apple.TCC/TCC.db tccutil reset All com.vmware.fusion sudo sqlite3 "/Library/Application Support/com.apple.TCC/TCC.db" 'insert into access values ("kTCCServiceScreenCapture", "com.vmware.fusion", 0, 1, 1, "", "", "", "UNUSED", "", 0, 1565595574)' sudo sqlite3 "/Library/Application Support/com.apple.TCC/TCC.db" 'insert into access values ("kTCCServiceListenEvent", "com.vmware.fusion", 0, 1, 1, "", "", "", "UNUSED", "", 0, 1565595574)' sudo sqlite3 "/Library/Application Support/com.apple.TCC/TCC.db" 'insert into access values ("kTCCServicePostEvent", "com.vmware.fusion", 0, 1, 1, "", "", "", "UNUSED", "", 0, 1565595574)'
好的,输入完这些命令后,vmware Fusion的Screen Capture、Listen Event、Post Event功能已经添加。
第五步,开启macOS的系统完整性保护机制。重启系统,按住Command-R,进入macOS的恢复模式。打开终端,输入如下命令,重新打开系统完整性保护机制。
csrutil enable
成功后,重启系统,进入系统的正常模式。vmware Fusion的Windows虚拟机可以看到屏幕了,问题解决,哈哈。
总结:macOS Catalina系统升级之后,vmware fusion的权限被系统修改了,所以虚拟机只能看到一个黑屏。如果要修改vmware fusion的系统权限,就需要先在macOS的修复模式,关闭系统完整性保护机制。修改完权限,一定要恢复macOS的系统完整性保护机制,保护系统的安全性。
在macOS的修复模式中看到了“重新安装macOS”的选项,目前系统感觉越来越慢了,有时间试一下重装macOS系统。