我需要在我的服务器上本地编辑远程文件,因此我尝试使用 SSHFS 在本地系统上挂载整个远程文件系统(/
),如下所示:
$ sshfs [email protected]:// /mnt -p 22
然后就卡住了(光标闪烁,无输出),所以很明显我用Ctrl+取消了它C。
此后,挂载点文件夹/mnt
变得无法使用、无法访问(您随便说),并且在我尝试访问它时不断返回此错误消息:
fuse: bad mount point `/mnt': Transport endpoint is not connected
它在父文件夹中呈现出奇怪的外观:
$ ls -l /
...
d????????? ? ? ? ? ? mnt`
...
我该如何解决错误并恢复正常?
我应该怎么做才能使用 SSHFS?
答案1
1. 终止所有sshfs
进程
使用
killall
命令:killall sshfs
或者选择性地:
查找所有正在运行的
sshfs
进程:ps -ef | grep sshfs | grep -v grep
假设有两个正在运行:
$ ps -ef | grep sshfs | grep -v grep root 10906 5170 0 07:14 pts/0 00:00:00 sudo sshfs root 10907 10906 0 07:14 pts/0 00:00:00 sshfs
现在,全部杀死它们,或者通过它们的 PID 识别它们,有选择地杀死它们:
sudo kill -9 10906 10907
2. 卸载挂载点
sudo umount -l /mnt
3. 进行编辑/etc/fuse.conf
,以便不再遇到fuse: bad mount point `/mnt': Transport endpoint is not connected
错误:
使用你喜欢的编辑器以 root 身份打开它,例如
sudo atom /etc/fuse.conf
- 取消注释该
user_allow_other
行。 - 保存并关闭。
4. 使用具有以下选项的 SSHFS:
sudo sshfs \
-d \
-o allow_other \
-o reconnect \
-o ServerAliveInterval=15 \
[email protected]:/ /mnt \
-p 12345 \
-C
-d
打开调试模式(提供更多输出)-o
代表“选项”-p
允许您指定端口号-C
开启压缩
资料来源:
答案2
还有另一种方法。尝试一下:
$ fusermount -u /mnt