Cache vs vfs-cache

I think I am a bit confused about caching versus vfs cache.

Files are stored in the cloud encrypted. The remote is gdrivecm
I mount that locally using the cache backend:

type = cache
remote = gdrivecm:
plex_url =
plex_username =
plex_password =
chunk_size = 1m
info_age = 5h
chunk_total_size = 10G

I use this command:

rclone mount --allow-other --cache-dir /data/Library/tmp/rclonecache Cache: /mnt/gdrivecm

I then mount that locally at /mnt/Google

type = crypt
remote = /mnt/gdrivecm/
filename_encryption = standard
password = xxx
password2= xxx

When I use this command:

rclone mount --allow-other --vfs-cache-mode writes --cache-dir /data/Library/tmp/rclonecache Google: /mnt/Google

or this command:

rclone mount --allow-other --cache-dir /data/Library/tmp/rclonecache Google: /mnt/Google

rclone ignores the --cache-dir switch for both mounts (Cache and Google). The Google mount doesn’t seem to write any cache files anywhere and the Cache mount starts giving I/O errors after about a week. The Cache mount writes files to ~/.cache/rclone/cache-backend regardless of the --vfs-cache-mode switch.

If I use --vfs-cache-dir rclone says Error: Unkonwn flag --vfs-cache-dir.


$ rclone --version
rclone v1.39-001-gb412c745β
- os/arch: linux/amd64
- go version: go1.9.2

My questions are:

  1. Should I use a vfs-cache with the Google mount at all?
  2. How do I change the cache dir location?

My goal is to have rclone keep a relatively large (like ~1 TB) disk cache either using the cache mount or the crypt mount, but to do so I have to move the cache dir to /data/Library/tmp and I don’t understand how the cache backend and vfs-cache with the crypt backend work together.


Alright, so I figured out how to move the chunk cache (I was reading the man pages instead of with the --cache-chunk-path switch.

But I still am confused about whether or not I need to use the vfs cache on the mount in front of the cache (e.g., to support simultaneously read/writes, etc.) and why the vfs-cache-mode switch seems to have no effect.

why are you mounting both remotes (cache & crypt) seperately?

why are you mounting both remotes (cache & crypt) seperately?

I am following what I’ve read on the forums (and now which say cloud remote -> cache -> crypt

How else would I do it? Is there a more efficient way?

Edit: I think you are asking why I mount both locally. The reason is because the encrypted files are in a sub-dir of the remote, which also contains other directories that are not rclone-encrypted.

just use gdrivecm: as your remote in your Google remote config - you only need one mount. this also works with subdirs

To clarify: I think that I have a specific use-case that isn’t clear because of the way I copy/pasted the configs.

In the cloud drive I have a directory that is encrypted with rclone and several other directories that are not. Thus, I want to mount the cloud drive at /mnt/gdrivecm and then use the cache backend to mount /mnt/gdrivecm/crypt at /mnt/Google, so the question really is should I (can I?) also use caching (vfs-cache-mode) for /mnt/gdrivecm so that the non-rclone directories are also cached.