1

I had rclone mount my Google Drive on my Android 7 box with the Magisk module and Termux. But it has stopped working and now there's only an empty folder. This is the rclone log:

2020/06/03 07:33:54 mount helper error: CANNOT LINK EXECUTABLE "fusermount": library "libandroid-support.so" not found
2020/06/03 07:33:54 Fatal error: failed to mount FUSE fs: fusermount: signal: aborted.

I just want to mount rclone on my rooted HiMedia Q10 Pro Android TV box so that I can view my GDrive as a permanent folder on my file system.

  • Please share link to the Magisk module you are using. It looks they are using fusermount binary built for Termux environment. But LD_LIBRARY_PATH isn't being set properly. A simple approach is to use static fusermount binary. – Irfan Latif Jun 3 at 12:17
  • Hi Thx for the help i replace the fusermount in magisk module(root/data/adb/module) with this: github.com/agnostic-apollo/fuse/releases (using my arch of armeabi-v7a-himedia q10pro), but still did not work. – donpoku Jun 3 at 15:24
  • Hi thanks for helping really appreciate it. I'm stuck on after nano bin/rclone_mount.sh.. termux change to a different screen with 'aX exit.. at the bottom, do i copy & paste all that 'following lines'? basically GDrive folder is created but nothing in it so I'm guessing i need to mount but your instructions of shell script is like new to me never used it before and as you can tell I'm a total noob. – donpoku Jun 3 at 22:25
  • And please be patient with us noobs, so when you break it down step by step like the first part of ~$ pkg install... for the mount part do I ignore the #lines basically what I'm saying is treat me like a child please. Thx – donpoku Jun 3 at 22:33
2

The Magisk module you linked is using fusermount binary from this thread which is built for Termux environment. But LD_LIBRARY_PATH environment variable is not being set properly in the module, so the error occurs. A simple approach is to use static fusermount binary, I already posted in the same thread.

rclone uses FUSE which you can mount manually from CLI without relying on Magisk module. I have explained in detail How to bind mount a folder inside /sdcard with correct permissions?. Some issues related to using FUSE on Android are explained in this post. Here I'm describing steps briefly related to rclone only. I'm using Termux for explanation. You can use some other terminal emulator app or adb shell with differences in paths.

  • Download rclone binaries from official website and static fusermount binary from here (available for both aarch64 and armeabi-v7a). Extract the downloaded archive files. I assume that downloaded files are placed in /sdcard/Download/.
  • For ease of repeated use create a shell script /sdcard/Download/rclone_mount.sh using any text editor. Copy/paste the following lines:

    #!/data/data/com.termux/files/usr/bin/bash -e
    
    # must be run with root privileges
    [ $(id -u) -eq 0 ] || exec su --mount-master -c "LD_LIBRARY_PATH=$LD_LIBRARY_PATH HOME=$HOME PATH=$PATH:$HOME/bin $0"
    
    # make sure to be in root mount namespace
    [ $(readlink /proc/1/ns/mnt) = $(readlink /proc/self/ns/mnt) ] || nsenter -t 1 -m -- "$0"
    
    Unmount() {
        fusermount -u /mnt/runtime/write/emulated/0/GDrive 2>/dev/null || :
    }
    
    # make sure it's not already mounted
    Unmount
    
    # make sure it's unmounted after rclone is killed
    trap 'sleep 1; Unmount' EXIT
    
    # mount remote in /sdcard/
    rclone -v mount GDrive: /mnt/runtime/write/emulated/0/GDrive --gid 9997 --dir-perms 0771 --file-perms 0660 --umask=0 --allow-other
    

    See rclone mount manual for explanation on commandline options. Some options may impact the performance.

  • Make sure Termux is granted Storage permission and execute following commands:
    ~$ pkg install -y util-linux
    ~$ mkdir -p bin /sdcard/GDrive
    ~$ cp /sdcard/Download/{fusermount,rclone,rclone_mount.sh} bin/
    ~$ chmod -R 0755 bin
    ~$ dos2unix bin/rclone_mount.sh
    ~$ bin/rclone config
    
    Follow the instruction on screen (see rclone config manual for details) to create configuration file (~/.config/rclone/rclone.conf) for Google Drive (or whatever remote service you want to use). I assume you chose the remote name GDrive (as used in above script).

Whenever you need to mount rclone, open Termux and run bin/rclone_mount.sh (or create Termux Widget to run the script from home screen conveniently).

  • All apps with Storage permissions should be able to explore GDrive folder (bind mounting to read and default views isn't necessarily required). But some apps may crash due to slow network activity, others may require more caching (see options) etc.
  • Trigger a Media Scan if e.g. pictures on remote don't appear in gallery app.
  • When done press Ctrl ^C to stop rclone process and mount.
| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.