Linux与Windows共享文件是非常重要的。因为有的时候跑计算要在Linux主机上,而做一些其他辅助性的工作则是在Windows主机上更为适宜。目前已有的方案主要还是SFTP(性能真的很差),SMB和NFS。SMB对于Windows来说倒是无感知的,但对于Linux而言选取一个合适的共享目录并没有那么简单;NFS则是要求双方都要配置,Windows需要NFS客户端,Linux则需要export一个合适的目录。

因此天降猛男WinFSP(Windows File System Proxy)在Windows上实现了用户态文件系统。然后在用户态文件系统的基础上移植了sshfs。自此就实现了Windows想挂什么就挂什么,想挂哪里就挂哪里。

安装

依次安装WinFSPsshfs-win就可以了

Troubleshooting

System error 67 has occurred

或者叫“发生系统错误67”,根据github已提交的一个issue来看。 大概不是sshfs-win的问题,而是底层依赖winfsp的一个问题。这个问题可以用远程主机关闭来重现。

主要现象如下:

PS C:\Users\hzy\downloads> net use X: \\sshfs\hzy@192.168.100.111\
The password is invalid for \\sshfs\hzy@192.168.100.111\.

Enter the user name for 'sshfs': hzy
Enter the password for sshfs:
System error 67 has occurred.

The network name cannot be found.

而已有的挂载也处于Unavailable状态:

PS C:\Users\hzy\downloads> net use
New connections will be remembered.


Status       Local     Remote                    Network

-------------------------------------------------------------------------------
Unavailable  Z:        \\sshfs.r\hzy@192.168.100.153\hddvol
                                                Windows File System Proxy
The command completed successfully.

同时可以看到WinFsp.Lanucher服务已停止。因此重新启动WinFsp.Lanucher服务即可。