![Google Drive 文件流遇到问题并已停止 OSX](https://linux22.com/image/1581172/Google%20Drive%20%E6%96%87%E4%BB%B6%E6%B5%81%E9%81%87%E5%88%B0%E9%97%AE%E9%A2%98%E5%B9%B6%E5%B7%B2%E5%81%9C%E6%AD%A2%20OSX.png)
感谢 github 用户 bfleischer 提供的解决方案
只是想分享一个解决方案的答案。最近我在我的 Mac 上安装了一个新的 OSX,遇到了这个问题,驱动器文件流抛出错误
Google Drive File Stream 遇到问题并已停止
每次我登录帐户后都会发生这种情况。
因此我开始在谷歌上寻找解决方案,但删除应用程序和 DriveFS 文件夹(如下)根本不起作用。
〜/图书馆/应用程序支持/ Google / DriveFS
重复上述步骤几次后,我登录谷歌账户后问题仍然存在。
然后我开始查看 DriveFS/logs 文件夹中生成的日志,并遇到了以下几行代码
2019-01-29T19:16:18.666ZE [123145549725696] stderr:(内核)Kext com.google.dfsfuse.filesystems.dfsfuse 启动失败(结果 0x5)。
2019-01-29T19:16:18.666ZE [123145549725696] stderr:(内核)Kext com.google.dfsfuse.filesystems.dfsfuse 加载失败(0xdc008017)。
2019-01-29T19:16:18.666ZE [123145549725696] stderr:(内核)无法加载 kext com.google.dfsfuse.filesystems.dfsfuse(错误 0xdc008017)。
2019-01-29T19:16:18.666ZE [123145549725696] stderr:无法加载/Library/StagedExtensions/Applications/Google Drive File Stream.app/Contents/MacOS/dfsfuse.kext - (libkern/kext)kext(kmod)启动/停止例程失败。
我意识到由于安装了 xtraFinder 等其他应用程序,我的 OSX SIP(系统完整性保护)被禁用了,因此我通过运行下面的命令并重新启动来执行了一些步骤,看看问题是否消失
csrutil enable
csrutil clear
重启并运行后,MacOS 安全系统提示我允许来自已识别的开发人员,我照做了,但问题仍然没有解决。
尝试手动加载 kext 也无法解决问题,但是我在运行消息
osxfuse:无法注册主设备号
这是最终引导我找到解决方案的信息
https://github.com/osxfuse/osxfuse/issues/358
引用解决方案
FUSE 需要注册一个虚拟设备,以便在内核和在用户空间中运行的实际文件系统实现之间交换消息。可用设备插槽的数量受 macOS 限制。因此,如果您使用其他软件(如 VMware、VirtualBox、TunTap、Intel HAXM 等)占用了所有可用的设备插槽,FUSE 将无法注册其虚拟设备。
在全新安装的 macOS 10.12 上,有六个可用设备插槽。VMware 和 VirtualBox 分别需要多个插槽。据我所知,TunTap (VPN) 需要两个插槽。Intel HAXM 至少需要一个插槽。
然后我运行 kextstat 来查看我在 Mac 上安装了哪些外部设备 kext
sh-3.2# kextstat | grep -v apple
Index Refs Address Size Wired Name (Version) UUID <Linked Against>
107 0 0xffffff7f83f91000 0x7000 0x7000 net.sf.tuntaposx.tap (1.0) 23FDB715-3D0D-3A26-ACBA-E3794C231CB7 <8 6 5 1>
108 0 0xffffff7f83f98000 0x7000 0x7000 net.sf.tuntaposx.tun (1.0) 95DD963D-E23D-3B0F-8DE8-A4D2F6BFA5CC <8 6 5 1>
109 0 0xffffff7f83f9f000 0x28000 0x28000 com.intel.kext.intelhaxm (7.3.2) 58DFBE80-E54A-3EFE-B38A-215C5ED8E828 <8 6 5 3 1>
112 3 0xffffff7f83fd5000 0xef000 0xef000 org.virtualbox.kext.VBoxDrv (6.0.2) 23F2E3C8-C38A-3339-9A6E-08F8AD6CA635 <8 6 5 3 1>
182 0 0xffffff7f860d4000 0x8000 0x8000 org.virtualbox.kext.VBoxUSB (6.0.2) E73ADEDC-4A15-36FB-B741-2373408F514B <181 112 54 8 6 5 3 1>
183 0 0xffffff7f860dc000 0x5000 0x5000 org.virtualbox.kext.VBoxNetFlt (6.0.2) 016CC2E0-4FB7-3DBA-A725-D353DF9D7DC9 <112 8 6 5 3 1>
184 0 0xffffff7f860e1000 0x6000 0x6000 org.virtualbox.kext.VBoxNetAdp (6.0.2) 5044F02A-8CCC-36A9-A1B5-E31D27F69B62 <112 6 5 1>
事实证明,virtualbox 存在问题,因为它消耗了四个可用的 kext,我继续下载 virtualbox 卸载脚本并卸载了 virtualbox。
之后,谷歌驱动器文件流就像魅力一样工作
你的情况可能会有所不同,因为你的机器上可能在安装 Google Drive 之前预装了除 VirtualBox 之外的其他 kext,在这种情况下,我建议在通过以下方式删除之前先了解一下每个 kext 的用途
kextunload -b input.your.kext.name.space