睡眠后(或连接丢失时)无法访问由 sshfs 挂载的文件夹

睡眠后(或连接丢失时)无法访问由 sshfs 挂载的文件夹

通常,当我通过 ssh 挂载文件系统时:

sshfs user@remote: ~/Mounts/Remote

并且机器休眠(关闭笔记本电脑盖)如果我唤醒机器,我无法访问已安装的文件夹。此外,如果我尝试ls访问父文件夹,终端会冻结。当连接以某种方式丢失时也会发生同样的情况。

如果尝试使用卸载

fusermount -u ~/Mounts/Remote

我不能这样做,因为:

fusermount:无法卸载 /home/yotama9/Mounts/Remote:设备或资源繁忙

我试图终止 ssh,但无法再次挂载该文件夹。ls文件夹仍然冻结。

我该如何避免和修复这个问题(Arch Linux)?

答案1

我在 Ubuntu Linux 中遇到了同样的问题。恢复后我做了什么:

$ killall -9 sshfs

然后,卸载

$ fusermount -u ~/far_projects

并再次挂载远程文件系统。

$ sshfs -o idmap=user youruser@server:/projects ~/far_projects

答案2

如上所述这里,这是你的解决方案:

 -o reconnect,ServerAliveInterval=15,ServerAliveCountMax=3

举例来说:https://github.com/aktos-io/dcs-tools,看一下make mount-root目标。

答案3

我的笔记本电脑也遇到了同样的问题。

您需要做的就是在卸载命令中包含延迟卸载选项(z):

$ fusermount -uz ~/Mounts/Remote

然后按照通常的方式重新安装即可。

另外,值得注意的是,我使用了重新连接选项(-o reconnect),它将在任何故障情况下维持连接(比如关闭盖子并几分钟后回来)。

您还可以研究类似的解决方案熔断器它是 fuse 文件系统(包括 sshfs)的自动挂载程序,可以省去您每次卸载/重新挂载的麻烦。

最后一个自动挂载选项是使用autofs 与 sshfs

相关内容