dtj*_*kro 5 mac google-drive macos google-drive-file-stream macos-mojave
感谢 github 用户 bfleischer 的解决方案
只是想分享一个解决方案的答案。所以最近我在我的 mac 上全新安装了一个新的 OSX 并遇到了驱动文件流引发错误的问题
Google Drive File Stream 遇到问题已停止
每次登录帐户后都会发生这种情况。
所以我开始在谷歌上搜索解决方案,删除应用程序和 DriveFS 文件夹(如下)根本不起作用。
〜/图书馆/应用程序支持/谷歌/DriveFS
重复上述步骤几次后,我登录我的谷歌帐户后问题仍然存在。
然后我开始查看 DriveFS/logs 文件夹中生成的日志并遇到了这些代码行
2019-01-29T19:16:18.666ZE [123145549725696] stderr: (kernel) Kext com.google.dfsfuse.filesystems.dfsfuse 启动失败(结果 0x5)。
2019-01-29T19:16:18.666ZE [123145549725696] stderr: (kernel) 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) start (libkern/kext) kext /stop 例程失败。
我意识到由于安装了 xtraFinder 等其他应用程序,我的 OSX SIP(系统完整性保护)被禁用,因此我执行了几个步骤,通过运行以下命令并重新启动来查看问题是否消失
csrutil enable
csrutil clear
Run Code Online (Sandbox Code Playgroud)
重新启动并运行后,MacOS 安全提示我允许来自已识别的开发人员,我这样做了但仍然没有解决问题。
尝试手动加载 kext 也没有解决问题,但是我在运行dmesg时确实注意到了额外的消息
osxfuse:无法注册主要设备号
这是最终将我引向此解决方案的消息
https://github.com/osxfuse/osxfuse/issues/358
引用解决方案
FUSE 需要注册一个虚拟设备,用于在内核和用户空间中运行的实际文件系统实现之间交换消息。可用设备插槽的数量受 macOS 限制。因此,如果您使用其他软件,如 VMware、VirtualBox、TunTap、Intel HAXM 等,它们会占用所有可用设备插槽,FUSE 将无法注册其虚拟设备。
在全新安装的 macOS 10.12 上,有六个可用的设备插槽。VMware 和 VirtualBox 各自需要多个插槽。据我所知,TunTap (VPN) 需要两个插槽。英特尔 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>
Run Code Online (Sandbox Code Playgroud)
事实证明,通过消耗四个可用的 kext,virtualbox 是一个问题,我继续下载了 virtualbox 卸载脚本并卸载了 virtualbox。
之后谷歌驱动器文件流就像魅力一样工作
您的情况可能会有所不同,因为您可能在 google drive 之前在您的机器中预装了除 virtualbox 之外的其他 kexts,在这种情况下,我建议在通过以下方式删除它之前先咨询每个 kexts 的用途
kextunload -b input.your.kext.name.space
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3695 次 |
| 最近记录: |