DEAR PEOPLE FROM THE FUTURE: Here's what we've figured out so far...

Welcome! This is a Q&A website for computer programmers and users alike, focused on helping fellow programmers and users. Read more

What are you stuck on? Ask a question and hopefully somebody will be able to help you out!
0 votes

I want to share the drives of two computers using Manjaro Linux and see them all as one directory in both computers.

I've been using mergerfs and sshfs and it was working when I shared one drive of B with A, merged them there and shared the merged folder back with B. Now I've tried merging the drives of B too but I haven't managed to do it.

If possible I would like the computers to still work while the other is disconnected. NFS made one computer hang when the other was disconnected which is why I ended up using sshfs.

The only error I had before was some applications giving input/output error or permission denied. Which I guess it's because I didn't have the proper permissions. I would like to avoid that error too, without having to execute something like chmod -R 777 /mnt/merged often. I don't know if this solution works with mergerfs.

This is what I've tried to do without success

user@A ❯ cat /etc/fstab

# <file system>                        <mount point>  <type>  <options>  <dump>  <pass>
UUID=1615d12a-a9fb-41a9-a84b-34c618f16832 /mnt/hdd1    ext4          nosuid,nodev,nofail,x-gvfs-show 0 0
UUID=d605a480-f133-443c-8fe7-5b0a2d1c60c1 /mnt/hdd2    ext4          nosuid,nodev,nofail,x-gvfs-show 0 0
user@192.168.1.45:/mnt/hdd0  /mnt/hdd0  fuse.sshfs  IdentityFile=/home/user/.ssh/id_rsa,uid=1000,gid=1000,allow_other,default_permissions,_netdev,follow_symlinks,ServerAliveInterval=45,ServerAliveCountMax=2,reconnect,noatime,auto  0  0
/mnt/hdd*  /mnt/storage  fuse.mergerfs  allow_other,use_ino,cache.files=partial,dropcacheonclose=true,ignorepponrename=true,func.mkdir=epall,x-gvfs-show  0  0

user@B ❯ cat /etc/fstab

# <file system>             <mount point>  <type>  <options>  <dump>  <pass>
UUID=301e3d8d-6c0a-4f7c-864b-4185a70efbb0 /mnt/hdd1      auto    nosuid,nodev,nofail,x-gvfs-show 0 0
UUID=be8b9fd3-7ed2-45ae-881a-25fa06f4de47 /mnt/hdd2      auto    nosuid,nodev,nofail,x-gvfs-show 0 0
user@192.168.1.122:/mnt/storage  /mnt/hdd0  fuse.sshfs  IdentityFile=/home/user/.ssh/id_rsa,uid=1000,gid=1000,allow_other,default_permissions,_netdev,follow_symlinks,ServerAliveInterval=45,ServerAliveCountMax=2,reconnect,noatime 0 0
/mnt/hdd*  /mnt/storage  fuse.mergerfs  allow_other,use_ino,cache.files=partial,dropcacheonclose=true,ignorepponrename=true,func.mkdir=epall,x-gvfs-show 0 0

This is what I was using, which is working fine.

user@A ❯ cat /etc/fstab

# <file system>                        <mount point>  <type>  <options>  <dump>  <pass>
UUID=1615d12a-a9fb-41a9-a84b-34c618f16832 /mnt/hdd1    ext4          nosuid,nodev,nofail,x-gvfs-show 0 0
UUID=d605a480-f133-443c-8fe7-5b0a2d1c60c1 /mnt/hdd2    ext4          nosuid,nodev,nofail,x-gvfs-show 0 0
user@192.168.1.45:/mnt/hdd1 /mnt/hdd0 fuse.sshfs _netdev,follow_symlinks,IdentityFile=/home/user/.ssh/id_rsa,allow_other,default_permissions,uid=1000,gid=1000,ServerAliveInterval=45,ServerAliveCountMax=2,reconnect,noatime,auto,x-gvfs-show 0 0
/mnt/hdd*  /mnt/storage  fuse.mergerfs  allow_other,use_ino,cache.files=partial,dropcacheonclose=true,ignorepponrename=true,func.mkdir=epall,x-gvfs-show  0  0

user@B ❯ cat /etc/fstab

# <file system>             <mount point>  <type>  <options>  <dump>  <pass>
UUID=301e3d8d-6c0a-4f7c-864b-4185a70efbb0 /mnt/hdd1      auto    nosuid,nodev,nofail,x-gvfs-show 0 0
UUID=be8b9fd3-7ed2-45ae-881a-25fa06f4de47 /mnt/hdd2      auto    nosuid,nodev,nofail,x-gvfs-show 0 0
user@192.168.1.122:/mnt/storage /mnt/storage fuse.sshfs _netdev,follow_symlinks,IdentityFile=/home/user/.ssh/id_rsa,allow_other,default_permissions,uid=1000,gid=1000,ServerAliveInterval=45,ServerAliveCountMax=2,reconnect,noatime,auto,x-gvfs-show 0 0
by
edited by

1 Answer

0 votes
 
Best answer

user@A ❯ cat /etc/fstab

/mnt/hdd*  /mnt/merged  fuse.mergerfs  allow_other,use_ino,cache.files=partial,dropcacheonclose=true,ignorepponrename=true,func.mkdir=epall,posix_acl=true  0  0

user@192.168.1.45:/mnt/merged  /mnt/shared  fuse.sshfs  _netdev,user,idmap=user,follow_symlinks,IdentityFile=/home/user/.ssh/id_rsa,allow_other,default_permissions,uid=1000,gid=1001,reconnect,ServerAliveInterval=15,ServerAliveCountMax=3,noatime,x-gvfs-show 0 0

/mnt/hdd*:/mnt/shared  /mnt/storage  fuse.mergerfs  allow_other,use_ino,cache.files=partial,dropcacheonclose=true,ignorepponrename=true,func.mkdir=epall,posix_acl=true,x-gvfs-show  0  0

user@B ❯ cat /etc/fstab

/mnt/hdd*  /mnt/merged  fuse.mergerfs  allow_other,use_ino,cache.files=partial,dropcacheonclose=true,ignorepponrename=true,func.mkdir=epall,posix_acl=true  0  0

user@192.168.1.122:/mnt/merged  /mnt/shared  fuse.sshfs  _netdev,user,idmap=user,follow_symlinks,IdentityFile=/home/user/.ssh/id_rsa,allow_other,default_permissions,uid=1000,gid=1001,reconnect,ServerAliveInterval=15,ServerAliveCountMax=3,noatime,x-gvfs-show 0 0

/mnt/hdd*:/mnt/shared  /mnt/storage  fuse.mergerfs  allow_other,use_ino,cache.files=partial,dropcacheonclose=true,ignorepponrename=true,func.mkdir=epall,posix_acl=true,x-gvfs-show  0  0

I did this in both computers

  1. Change the permissions

    ❯ sudo chown $USER:$USER /mnt/storage &
    ❯ chmod -R ugo+rw /mnt/storage &

  2. Set the setgid bit, so that files/folder under will be created with the same group as

    ❯ chmod g+s /mnt/storage &

  3. Set the default ACLs for the group and other

    # Gives group read,write,exec permissions for currently existing files and
    # folders, recursively.
    ❯ setfacl -R -m u::rwx,g::rwx,o::rwx /mnt/storage &

    # Gives group rwx permissions by default, recursively.
    ❯ setfacl -R -d -m u::rwx,g::rwx,o::rwx /mnt/storage &

by
edited by
Contributions licensed under CC0
...