在 Linux 下访问 Win 分区,不管是 fat 还是 ntfs 已经比较完善了,而且方法统一,文档丰富,驱动也很容易找。
但在 Win 下访问 Linux 各种分区就很不容易,只读然后导出文件的工具还好,无缝访问工具更难找。
所谓“无缝访问”,seamless access ,就是挂载到本地文件系统,不需要导出后才能读或写。以 iso 为例,比较用 winiso 导出文件再读,用 daemon 挂载成虚拟光驱就能直接读了,这就是“无缝访问”。
Win 实现无缝访问本地 ext2/3 xfs reiserfs 分区,一般是通过 win 的 IFS KIT 对各种文件系统分别实现驱动来实现的。一般是把一个分区映射成一个比如 J: K: 等的盘符。
这有一个很严重的问题,许可证问题,MS 的 IFS KIT 是商业软件,不能和 Linux 下 GPL 的 ext2/3 reiserfs xfs jfs 驱动代码编译到一起的。要法律上没有瑕疵,只有两种方案,重新发明和 IFS 同功能的接口,或者重新发明 linux 文件驱动。法律上,只能用“净室方法”在完全没有接触过替代代码的情况下,通过反向工程作出。
开源的同志们已经作出了 a free version ntifs.h 。许多开源驱动都是用这个的,所以不叫 IFS 叫 FSD 。只要用 GPL,就可以直接用 Linux kernel 里的文件驱动代码。
但许多不开源的,不管是商业还是免费,我觉得里面用的文件系统驱动代码很可疑。
还有一些驱动,不合法的用了 MS 的东西。
各种文件系统的支持程度大不一样,ext2/3 只读访问比较完善,驱动较多,reiserfs 较少,xfs 只有一个不能工作的雏形,ufs 有两个驱动,jfs 根本就没听说过有。
ext2 的驱动有 Ext2IFS , FSDExt2 , Ext2FSD , ext2fsnt 等等。
ext2/3 可以用 ltools , explorer2fs 导出 ext2/3 中的文件,不能无缝访问。
paragon-software.com 就是 partition manager 的公司,有个 Partition Explorer 可以导入,我记得以前好像有驱动的。
reiserfs 驱动只有 rfsd ,导入工具可以用 ltools + GUI 和 rfstool + GUI 。
Total Commander Plugins 支持 ext2/3 和 reiserfs ,据说就是两个开源驱动的组合,所以还是 GPL 的。
xfs 在 win 下有个 xfs32 ,只是雏形,连导入都不能工作。
usf 驱动有 ffsdrv 和 ufs2tools 。
这些软件肯定是要能独得,至于能不能写,我认为任何宣称可写的都值得怀疑,我是不会测试写的,就像 Linux 下我也不会写 ntfs 。至于 fat ,那不是现代的文件系统,结构很简单,我相信 linux 里的实现。
而 crossmeta 虽然用了 MS IFS 和 GPL 文件系统代码,却用一种巧妙的方式避开了法律问题,而且更具扩展性。
首先, crossmeta 用 MS IFS 实现了一个商业的核心程序,挂载了一个 V: 盘符的核心文件系统,布局类似 *nix 系统。在这个系统之上,提供另一个文件系统接口,把其他文件系统挂载到 V:\mnt\xxx 里。
支持 NTFS, FAT and CDFS ,还有 Win 不支持的 NFS version 2 and 3 over UDP 。
而 BSD License 的 UFS/FFS 代码也已经集成。
这个核心是不开源,但免费的。
然后,用自己的文件系统接口,加上 Linux kernel 里的文件驱动代码,作出 EXT2, XFS 和 Reiserfs 的驱动,这是 GPL 的。
Win 的文件系统接口跟 Linux 的是大不一样的,而 crossmeta 的文件系统接口可以更接近 Linux ,移植 Linux 文件系统会比较方便。加上 jfs 支持也不会太难。
如何在windows里挂载linux分区
内容版权声明:除非注明,否则皆为本站原创文章。
转载注明出处:https://www.heiqu.com/de825ef9c0a0f70ac94c23cc6ba4ea27.html