Rclone mount and macOS - testers needed!

I just read that the maintainer of the fuse library that rclone uses for rclone mount is dropping support for macOS. I updated the library and it no longer builds on macOS.

This isn't a disaster - rclone has 2 other supported mount libraries!

  • mount2
  • cmount

They both have pros and cons though. mount2 is relatively new and untested. It is supported on macOS but it isn't supported on FreeBSD so I can't drop the mount library completely. It would be easy to make this the default mount on rclone.

cmount uses libfuse directly via its C interface. It works well but requires building rclone differently. It may or may not be possible to build rclone such that it runs without having OSXFUSE installed (depending on whether I can statically link libfuse into rclone), so doing this might mean we have two rclone binaries on macOS one with and without OSXFUSE support. I'm pretty sure that cmount will be very reliable as it is the library we use for windows support.

Either way we need to change the library...

Would any macOS mount users like to help me test the alternatives?

that kinda sucks...

So I am happy to help if I can.

I have an iMac running 10.14 and a macBook on 10.15

We are having a discussion about the best way forward. It might mean that we have to distribute 2 binaries for macOS. Rclone and a mount enabled rclone.

The other alternative is to promote mount2 to be the macOS mount. I'd appreciate if you'd give rclone mount2 a go as a replacement for rclone mount and report back how well it works.

1 Like

Whatever you do, don't let us linux users suffers.

I wouldn't like to have an worse software just because you want to support the apple idiocy.

If I were you I'd actually just stick to Linux...your life would be much easier lol

ok, so I tried the latest rclone (v1.52.2) on my imac with rclone mount2

Initial observations:

I get a permission denied if I try to mount it as my regular user, needed to use sudo to get it to mount.

Without using sudo, mount still shows it as mounted, but using ls -l in terminal gives this:

ls: .: Device not configured

Opened a large directory via the finder and got a panic: (tried twice with the same result)

2020/07/01 12:06:57 unknown node 9223372036854776379
panic: unknown node 9223372036854776379

goroutine 9281 [running]:
log.Panicf(0x556bf5c, 0xf, 0xc001a34e58, 0x1, 0x1)
	log/log.go:358 +0xc0
github.com/rclone/rclone/vendor/github.com/hanwen/go-fuse/v2/fs.(*rawBridge).inode(0xc0000e1d00, 0x800000000000023b, 0x0, 0x0, 0x0)
	github.com/rclone/rclone/vendor/github.com/hanwen/go-fuse/v2/fs/bridge.go:231 +0x17b
github.com/rclone/rclone/vendor/github.com/hanwen/go-fuse/v2/fs.(*rawBridge).Access(0xc0000e1d00, 0xc000e7a3c0, 0xc000e3ef40, 0x1)
	github.com/rclone/rclone/vendor/github.com/hanwen/go-fuse/v2/fs/bridge.go:522 +0x49
github.com/rclone/rclone/vendor/github.com/hanwen/go-fuse/v2/fuse.doAccess(0xc0001f0f20, 0xc000e3ed80)
	github.com/rclone/rclone/vendor/github.com/hanwen/go-fuse/v2/fuse/opcode.go:400 +0x4b
github.com/rclone/rclone/vendor/github.com/hanwen/go-fuse/v2/fuse.(*Server).handleRequest(0xc0001f0f20, 0xc000e3ed80, 0xc000000000)
	github.com/rclone/rclone/vendor/github.com/hanwen/go-fuse/v2/fuse/server.go:474 +0x3d2
created by github.com/rclone/rclone/vendor/github.com/hanwen/go-fuse/v2/fuse.(*Server).loop
	github.com/rclone/rclone/vendor/github.com/hanwen/go-fuse/v2/fuse/server.go:439 +0x177


mount still shows it as mounted, but using ls -l in terminal gives this:

ls: .: Device not configured

I used to use the --volname flag this had no effect with mount2

Thank you for trying that. It looks like it didn't work very well :frowning: I'll probably need to borrow a mac to debug that.

Can you compare and contrast with rclone cmount in this binary (you'll need to gunzip it). This is the alternative which will require two rclone binaries if we decide to go that way. rclone cmount is the code which is used on Windows so it should be pretty solid.

https://beta.rclone.org/v1.52.2/testbuilds/rclone-darwin-10.6-amd64.gz

You won't be able to run this binary on a mac which doesn't have OSXFUSE installed which is the problem...

Hi,

From a quick test, that one does seem to work.

I managed to mount the drive and playback a couple of Videos successfully (and the volname flag worked)

although a couple of times it did not want to unmount, saying in use by Finder. Had to force a unmount with diskutil unmount force /Users/admin/_mounts/gDrive

Not sure if it might be a bit slower listing the drive, will have to try a regular mount again and compare.

But then something weird started happening, The Finder suddenly shows no files or folders in the top level of the mount point. Looked in Terminal same thing no files listed...

cd gDrive
iMac:gDrive admin$ ls -la
total 0
drwxr-xr-x@  1 admin  staff    0  1 Jul 20:27 .
drwxr-xr-x  21 admin  staff  672 21 Jun 19:09 ..

But if I do a cd into a directory that I know should be there then terminal does show the files/folders in there:

iMac:gDrive admin$ cd TV
iMac:TV admin$ ls -la
total 0
drwxr-xr-x  1 admin  staff  0 12 May  2017 .
drwxr-xr-x@ 1 admin  staff  0  1 Jul 20:27 ..
drwxr-xr-x  1 admin  staff  0 13 May  2017 REDACTED
drwxr-xr-x  1 admin  staff  0 12 May  2017 REDACTED
drwxr-xr-x  1 admin  staff  0 12 May  2017 REDACTED
drwxr-xr-x  1 admin  staff  0 13 May  2017 REDACTED
etc...

I have got it mounted with debug, but not seeing anything obvious in there, but I can send that via PM if it would be of any use.

Good

Hmmm...

Hmm....

It would be worth me taking a look I think - thanks.

Not exactly helpful but I am also having exactly the same issue as @blim5001when running mount2 on catalina 10.15.4:

$ rclone --version                                           
rclone v1.52.2-212-g80d2f381-beta
- os/arch: darwin/amd64
- go version: go1.14.4

Lmk if you want me to test anything else for mac :slight_smile:

Interesting! Here is a beta with a cmount which I think is there way we will be going. It should be fully functional. Testing on rclone cmount with this appreciated!

https://beta.rclone.org/branch/v1.52.2-201-g593e20fe-fix-4393-cmount-beta/

Appears to work fine. Anything I should test in particular?

I guess use it day to day and see if anything goes wrong!