我所在大学的计算机科学系有自己的服务器用于开发(从现在开始,dev.univ.edu
)。我可以通过 SSH 和 SFTP 访问此服务器,我希望使用 WSL 在我的 Windows 笔记本电脑上完成一些繁重的工作。我的计划是通过sshfs
SFTP 将服务器的文件系统挂载到我的笔记本电脑上,这样我就可以使用自己的工具,而不必使用我们服务器上有限的程序。但是,每当我尝试使用时sshfs
,都会发生以下情况:
user@host:~$ sshfs -p 22 [email protected]: ~/dev/ -o follow_symlinks
> fuse: device not found, try 'modprobe fuse' first
运行modprobe fuse
得到以下结果:
modprobe: ERROR: ../libkmod/libkmod.c:586 kmod_search_moddep() could not open moddep file '/lib/modules/4.4.0-43-Microsoft/modules.dep.bin'
modprobe: FATAL: Module fuse not found in directory /lib/modules/4.4.0-43-Microsoft
经过一番挖掘,似乎fuse
WSL 不支持,即使在UserVoice 页面fuse
已经支持了两年多,有超过 1500 人请求支持。由于依赖sshfs
(fuse
我假设用于创建远程文件所在的文件系统),因此sshfs
无法使用。
我找到了一个项目(billziss-gh/winfsp
) 看起来很有希望,但我不知道如何结合来实现它sshfs
。有没有比我更有知识的人可以帮助我实现这个功能?
编辑:根据这个问题,winfsp
无法与 WSL 兼容。不过,我注意到了同一个人的一个项目(billziss-gh/nfs-win
) 可能会有用。
答案1
所以我有一个你可能会喜欢的解决方法。我安装了SFTP 网络驱动器 2017 然后远程连接到我想要的文件系统。我将其映射为(通过 GUI)R:\
。然后,您可以R:\
按照说明从 WSL 映射到本地文件夹这里。
因此在 WSL 中,我的主目录中有一个名为 的文件夹cluster
。要将其从我的集群挂载为我的本地主目录,我运行:
sudo mount -t drvfs R: ~/cluster
要卸载它,我运行
umount ~/cluster
为了方便起见,我创建了一个名为的别名mc
,来源于我的.bashrc
alias mc="sudo umount ~/cluster; sudo mount -t drvfs R: ~/cluster"
我希望这有帮助!
答案2
自从我提出这个问题以来,微软已经在其 Insiders Preview 通道中发布了 WSL 2。由于这为 WSL 提供了完整的 Linux 内核,因此无需采取其他变通措施即可让 SSHFS 正常运行。
更新:从 Windows 版本 2004 开始,WSL 2 现已公开可用。祝您玩得开心!