Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Macfuse 4.6.1 not working macOS Sonoma 14.4 #1002

Closed
m4w13 opened this issue Mar 11, 2024 · 11 comments
Closed

Macfuse 4.6.1 not working macOS Sonoma 14.4 #1002

m4w13 opened this issue Mar 11, 2024 · 11 comments
Assignees

Comments

@m4w13
Copy link

m4w13 commented Mar 11, 2024

I got the same error as in #1000 after upgrading Sonoma to 14.4

Tried to re-disable SIP and clear system cache, nothing helps.

Maybe there is an ultimate solution to this issue? Except for the 14.3 rollback, of course.

@bfleischer
Copy link
Member

macFUSE 4.6.1 works fine for me on macOS 14.4 on multiple Macs.

Did you follow the steps outlined in the Getting Started document? Which step did not work for you?

Are you using an Apple Silicon Mac or an Intel Mac?

Are you booting from an external volume?

Are other third-party kernel extensions installed on your Mac? There are several documented cases where other third-party kernel extensions that are not compatible with the currently running version of macOS resulted in macOS refusing to load any third-party kernel extensions, including macFUSE.

Maybe there is an ultimate solution to this issue? Except for the 14.3 rollback, of course.

Just for clarification ... Did macFUSE 4.6.1 work for you on 14.3?

@m4w13
Copy link
Author

m4w13 commented Mar 11, 2024

Did you follow the steps outlined in the Getting Started document? Which step did not work for you?

Yes, I tried completely uninstalling macfuse, rebooted, reinstalled it, checked all the points in your guide (Getting Started).

The error is always the same. after I allow kext in "Privacy & Security", reboot and try to mount something, then I get the notification to allow kext again. I have tried this at least 5 times.

Are you using an Apple Silicon Mac or an Intel Mac?

Apple Silicon

Are you booting from an external volume?

No, from the integrated SSD

Are other third-party kernel extensions installed on your Mac?

No.
kextstat | grep -v com.apple
return

Executing: /usr/bin/kmutil showloaded
No variant specified, falling back to release
Index Refs Address            Size       Wired      Name (Version) UUID <Linked Against>

Just for clarification ... Did macFUSE 4.6.1 work for you on 14.3?

Yes, before upgrading to 14.4 macFUSE 4.6.1 worked fine.

@bfleischer
Copy link
Member

Sounds like there might be an issue when macOS tries to build the "auxiliary kext collection" (third-party kernel extensions) after you click on the "allow" button. Could you run kmutil inspect in Terminal? It will list all kernel extensions in the "boot kernel collection" and the "auxiliary kext collection". Does the "auxiliary kext collection" contain macFUSE?

@m4w13
Copy link
Author

m4w13 commented Mar 11, 2024

Yes.

kmutil inspect | grep macfuse

return

No variant specified, falling back to release
io.macfuse.filesystems.macfuse	2145.21	/Library/Filesystems/macfuse.fs/Contents/Extensions/13/macfuse.kext

@bfleischer
Copy link
Member

It's definitely an issue with building the auxiliary kext collection. The listed version should be 2145.23 and the path should end with Extensions/14/macfuse.kext. Your kext collection contains the macOS 13 version of the macFUSE kernel extension. This is pretty weird.

A workaround might be deleting all subdirectories from /Library/Filesystems/macfuse.fs/Contents/Extensions with the exception of the 14 subdirectory, of course. With only one version of the macFUSE kernel extension available, macOS should not be able to include the wrong one when building the auxiliary kext collection.

@m4w13
Copy link
Author

m4w13 commented Mar 11, 2024

Thank you so much!

I have removed all versions from /Library/Filesystems/macfuse.fs/Contents/Extensions except 14.

ls -lah /Library/Filesystems/macfuse.fs/Contents/Extensions

return

total 0
drwxr-xr-x  3 root  wheel    96B 11 мар 13:25 ./
drwxr-xr-x  7 root  wheel   224B  4 мар 17:53 ../
drwxr-xr-x  3 root  wheel    96B  4 мар 17:54 14/

I then allowed kext again in the settings and rebooted.

And after that, everything worked!

kmutil inspect | grep macfuse

now returns

No variant specified, falling back to release
io.macfuse.filesystems.macfuse	2145.23	/Library/Filesystems/macfuse.fs/Contents/Extensions/14/macfuse.kext	

Thank you again!

@bfleischer
Copy link
Member

I'm glad it worked.

I have no idea why macOS would use the macOS 13 version of the macFUSE kernel extension when building the auxiliary kext collection. macFUSE clearly tries to load the macOS 14 version. That's why you have been prompted to click "allow" over and over again.

@bfleischer bfleischer self-assigned this Mar 11, 2024
@karolpawlowski
Copy link

I also got this problem after upgrading to 14.4, and removing all extensions from /Library/Filesystems/macfuse.fs/Contents/Extensions, except 14 helped. Thanks.

@joshuahhh
Copy link

joshuahhh commented Apr 5, 2024

I also ran into this problem, and was similarly able to fix it. Thanks! Just to check: this is the problem that's now documented in "Getting started" starting with "In case you are prompted to allow loading the macFUSE kernel extension again and again...", right? I was going to stop by to suggest this problem be better documented, but it looks like it's documented just fine, if I were to actually read the documentation carefully!

EDIT: Oh but I have possibly useful information to provide – I just went back and tested old versions, and this problem appears between 4.6.0 and 4.6.1. This matches the timing of this GitHub issue, right? Was there something that changed between these versions that might have produced this problem?

@bfleischer
Copy link
Member

I also ran into this problem, and was similarly able to fix it. Thanks! Just to check: this is the problem that's now documented in "Getting started" starting with "In case you are prompted to allow loading the macFUSE kernel extension again and again...", right?

Yes.

EDIT: Oh but I have possibly useful information to provide – I just went back and tested old versions, and this problem appears between 4.6.0 and 4.6.1. This matches the timing of this GitHub issue, right? Was there something that changed between these versions that might have produced this problem?

macFUSE 4.6.1 adds a workaround for unintended modification time updates on Apple Silicon Macs. Before this workaround macFUSE shipped with only a single kernel extension for macOS 11 to macOS 14. Due to API changes in the macOS kernel (related to the modification time workaround) between macOS 12 and macOS 14, macFUSE 4.6.1 ships with three kernel extension (macOS 11, macOS 12-13, macOS 14).

Apple rewrote the macOS kernel extension manager in macOS 11. It has been broken ever since. macFUSE contains many workarounds for various bugs that Apple introduced in macOS 11. Some of those bugs have been fixed in the meantime, others not.

If you are on macOS 14, macFUSE explicitly tells the macOS kernel extension manager to load the macOS 14 kernel extension, but for some users the manager randomly picks one of the three kernel extensions and prompts the user to "Allow" loading it. After giving your consent and rebooting, macFUSE tries loading the macOS 14 kernel extension again. This is when the kernel extension manager realizes that the user never consented to loading the macOS 14 kernel extension and the user is prompted again. This seems to continue forever. It's just like a shell game. Deleting all kernel extension but the one that matches your version of macOS effectively kills the "game".

The only way to address this from the macFUSE end seems to be implementing yet another workaround.

TL;DR

macFUSE 4.6.0 was not affected because there was only a single kernel extension for Apple Silicon, since macFUSE 4.6.1 there are three.

@hillierdani
Copy link

I also got this problem after upgrading to 14.4, and removing all extensions from /Library/Filesystems/macfuse.fs/Contents/Extensions, except 14 helped. Thanks.

Actually, for me the whole macfuse.fs had to be deleted as reinstalling MacFuse did not repopulate the kext (had an empty /14 subfolder). But now MacFuse works on M1 Sonoma 14.4.1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants