3
4
credits goes to github user bfleischer for the solution
Just wanted to share an answer to a solution. So recently i fresh installed a new OSX on my mac and encountered this problem which the drive file stream throws an error
Google Drive File Stream encountered a problem and has stopped
It happens every time when after i signed in into the account.
So i start googling around for solutions and removing the app and DriveFS folder (below) doesn't work at all.
~/Library/Application Support/Google/DriveFS
After repeating the steps above a few times, the problem still persists after i signed into my google account.
Then i start looking at the logs generated inside the DriveFS/logs folder and encountered these lines of code
2019-01-29T19:16:18.666ZE [123145549725696] stderr: (kernel) Kext com.google.dfsfuse.filesystems.dfsfuse start failed (result 0x5).
2019-01-29T19:16:18.666ZE [123145549725696] stderr: (kernel) Kext com.google.dfsfuse.filesystems.dfsfuse failed to load (0xdc008017).
2019-01-29T19:16:18.666ZE [123145549725696] stderr: (kernel) Failed to load kext com.google.dfsfuse.filesystems.dfsfuse (error 0xdc008017).
2019-01-29T19:16:18.666ZE [123145549725696] stderr: Failed to load /Library/StagedExtensions/Applications/Google Drive File Stream.app/Contents/MacOS/dfsfuse.kext - (libkern/kext) kext (kmod) start/stop routine failed.
I realize that i have my OSX SIP (System Integrity Protection) disabled due to installing other apps like xtraFinder, so i did a few steps to see if the problem goes away by running the commands below and rebooting
csrutil enable
csrutil clear
After rebooting and running, the MacOS security prompted me to allow from identified developers, which i did but still did not solve the problem.
trying to load the kext manually did not solve the issue as well, however i do notice extra message when running the dmesg
osxfuse: Failed to register major device number
this is the message that finally leads me to this solution
https://github.com/osxfuse/osxfuse/issues/358
quote from the solution
FUSE needs to register a virtual device for exchanging messages between the kernel and the actual file system implementation running in user space. The number of available device slots is limited by macOS. So if you are using other software like VMware, VirtualBox, TunTap, Intel HAXM, ..., that eat up all free device slots, FUSE will not be able to register its virtual device.
On a brand new install of macOS 10.12 there are six free device slots. VMware and VirtualBox require multiple slots each. TunTap (VPN) requires two slots, as far as I know. Intel HAXM requires at least one slot.
then i run kextstat to see which external device kexts that i have installed on my mac
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>
turns out the virtualbox is an issue by consuming four available kexts, i went ahead and download the virtualbox uninstallation script and uninstalled the virtualbox.
afterwards the google drive file stream works like charm
your case may vary as you may have other kexts than virtualbox preinstalled in your machine before google drive, in this case i suggest to consult what are the uses of each kexts before removing it via
kextunload -b input.your.kext.name.space