Google Drive 文件流遇到问题并已停止 OSX

Google Drive 文件流遇到问题并已停止 OSX

感谢 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

相关内容