Mounting on macOS using NFS is now on master

Using FUSE on Apple-Silicon Macs have been a big hassle. This motivated me to create a new solution that doesn't depend on FUSE, inspired by how Google Drive Desktop used to implement their mount method. This new method automatically replaces the mount command when cmount is not enabled during compile time.

The main advantages of this method are:

  • Does not require installation of any third-party software or kernel extension.
  • Pure Go solution without dependency on cgo.

To try it out, check out the master branch and run a mount command:

go run rclone.go mount remote: /path/to/mountpoint

@jwink3101 @ncw @lucasew @mstgrv @nielash

This feature has been discussed in:

Thanks to @ncw and @lucasew for reviewing the PR

4 Likes

Thank you @salehqt!! So excited to try this out! :slight_smile: :tada:

This sounds really cool.

  1. Is there a reason to hide it under mount instead of serve nfs?
  2. Is the eventual plan to be that this can integrate into the regular rclone with some option on macOS?
  3. Other than simpler (which is noble unto itself!) how does this compare (pros,cons?) with FUSE-T?

Thanks for the hard work!

Good questions. I tried to document some of these in the inline documentation that goes on the website. But I guess it is still not discoverable.

  1. serve nfs exists as a separate command, it is documented, and you can use it however you like. mount is pretty much a convenience wrapper around serve nfs.
  2. The way I integrated it, it replaces mount command when cmount is not enabled.
  3. I haven't tested FUSE-T myself, so I cannot comment about reliability or performance. I see two notable differences.
    a. FUSE-T is NFSv4 while go-nfs is only NFSv3. I am not sure how much a difference this makes
    b. serve nfs is pure go with no extra dependencies. FUSE-T is still dependent on cgo and installed dylibs.

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.