Windows和Linux文件系统级别挂载

十年前,业界流行用samba/ftp/nfs互访windows/linux

今天,可以通过ssh挂载任何Linux目录,变成windows下一个native驱动器(驱动级加载,真正native,不是模拟出来的,其他方式的局限性下文解释)

要实现挂载,windows上运行一个程序即可(源码/编译好的程序见文末),而Linux上没有任何要求( 因为ssh是Linux标配)

试想一个使用场景:2台电脑,一个win一个linux, windows上visual studio, mingw, eclipse.../linux上openoffice,eclipse..

如果可以通过网络2个环境可以像使用本地文件一样,打开和编译代码、文档,跨平台代码立马编译运行,DEBUG,岂不妙哉?

一般性的解决方案无外乎这样几种:

  1. linux装samba,变成windows共享目录,需要装很多包,若以后需要挂多台LINUX,岂不是个个都要装SAMBA?况且我另外一台电脑是Gentoo,需要多很多包,意味着编译很多代码,可以达到目的但不符合我KISS风格

  2. 用NFS互访。 Linux上NFS开服务,windows挂载成网络驱动器,或者windows开NFS服务,Linux直接mount。
    但是windows上native的方式是安装file service组件(我的windows是2008 R2),做NFS服务器时windows是不支持UTF-8的,意味着linux下挂载的中文目录文件名无法正确显示,用haneWIN NFS Server可以解决这些,但是跟原有的file service组件不能同时存在,因为nfs需要rpc,而rpc在file service是在windows服务注册保护的,当然,windows下的老鸟可以手动干掉bind 111端口的rpc服务,不过这样就把系统的nfs server搞残了。从Linux挂到windows上没问题,但反过来,windows上NFS挂Linux,总遇到权限问题,挂载但无法访问,试过了注册表修改nfs client anonymousUid等等,no luck

  3. 用sftp挂载驱动器到windows上,目前这样最简单,系统依赖最小。 对Linux来讲,只需要SSH服务开启,无需任何其他服务。

在开始折腾之前,先定需求:

  1. 速度快,几千个文件/目录列表,不要让人等半天
  2. 可以save每个driver的profile,支持mount多个drivers
  3. 像模像样的块文件系统,不要什么在EXPLORER EXTENSION出来,又或者MOUNT成NETWORK MAPPING这样的映射驱动器,因为我要用TRUECRYPT之类的驱动级工具,其他高层次的“驱动器”,在TRUECRYPT加载时是不可见的!

试用了无数,靠谱的如下:

DirectNet Drive : 免费,驱动级,符合要求,sftp/ftp/webdav都支持,而且可以用http/socks代理,版本1.2.5(2010.11)后就不维护了,但问题是,我只需要用sftp,而且它的BUG是无论如何也不能指定sftp的目录,统统是从/下mount
http://www.directnet-drive.net/

Sftp Net Drive : 免费,驱动级,功能非常强大,人家是专门做文件系统的,Net Drive只是个副产品,完全满足需求,还有其他高级选项(加载成各种驱动器类型),但是免费版只能加载一个驱动器,收费版给钱才给提供下载,搜不到收费版,更别说破解版了。
https://www.eldos.com/sftp-net-drive/

ExpanDrive,收费,应用级,找了个2.4.0破解版,功能类似Sftp Net Drive般丰富,可惜速度慢(因为我文件目录比较多),在TRUECRYPT中不可见,不过一般应用是没问题,特别是有需要把s3/ftp等等映射成本地驱动器的,推荐使用。
http://www.expandrive.com

Dokan : 开源,fuse在windows上的一个实现,驱动级。 有很大自由发挥余地。 但是其他文件系统模块需要自己写,比如需要sftp需要自己实现,工作量大。 外围有人写了个DokanSSHFS,BUG比较多,删除目录时,竟然不能删除子录!
另外的实现win-sshfs,2012年5月提交一次代码后就没更新了,删除文件目录,而后刷新又出现了!
http://code.google.com/p/win-sshfs/
http://github.com/apaka/win-sshfs

由于暂时找不到替代品,只好把代码check下来,修修补补,现在可以用了。
ssh用的是.net的实现 虽然不是c而是csharp的,但性能应该不会太差(比Expandrive用的python实现ssh好多了)。

老的win-sshfs用的SSH.NET Library是2010年的版本,让我给换成最新代码开发库的rev 34720版本了
http://sshnet.codeplex.com/SourceControl/list/changesets

修复的BUG:
修复了缺少盘符“Z”
修复了git不能在映射盘上使用
修复了在目录下右键不能创建其他文件

修复file locking相关API(ms office打开.doc文件/svn/hg需要调用LockFile/UnLockFilGetFileSecurity)

使用方法:

  1. Linux sftp服务器需要打开密码验证,确保/etc/ssh/sshd_config中“PasswordAuthentication”为“yes”,重启sshd
  2. 打开sshfs.exe,点add,新建一个profile,填写IP,端口,用户名,密码,目录,盘符,点保存
  3. 点Mount按钮,如果顺利的话系统就会增加一个驱动器,并且Mount按钮会变成Unmount
    Enjoy!

项目源代码:http://github.com/truthtracer/sshfs4win.git
编译好的可执行程序(csharp实现):http://download.csdn.net/detail/truthtracer/7071881 (CSDN更新资源不方便,建议自行编译源代码得到最新的版本)
Report Bus via : TruthTracer@gmail.com

【原文出处】

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,132评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,802评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,566评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,858评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,867评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,695评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,064评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,705评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,915评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,677评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,796评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,432评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,041评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,992评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,223评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,185评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,535评论 2 343

推荐阅读更多精彩内容