通常,当我通过 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。