NTFS-3G

Microsoft Windows NTFS檔案系統的開放原始碼跨平台實作

NTFS-3G是一个由Tuxera公司开发并维护的自由软件项目,采用GNU通用公共许可证发布,旨在为非微软Windows NT系操作系统提供安全快速、具备读写功能的NTFS文件系统驱动程式

NTFS-3G
开发者Szabolcs Szakacsits,Tuxera Inc.
当前版本2022.10.3(2022年10月31日,​2年前​(2022-10-31
原始码库 编辑维基数据链接
编程语言C
操作系统主要是类Unix系统
类型文件系统驱动程式
许可协议GNU GPL
网站http://www.ntfs-3g.org/

NTFS-3G最初由资深Linux驱动程式开发者Szabolcs Szakacsits(匈牙利语发音:[ˈsɒbolt͡ʃ ˈsɒkɒt͡ʃit͡ʃ])于2006年发起并主导,2007年初公布了第一个稳定版本ntfs-3g-2007.02.21,原始码托管于SourceForge。随后NTFS-3G团队成立了Tuxera Inc.,负责NTFS-3G的进一步发展、商业推广以及为项目提供开发资金。目前Tuxera公司还推出了NTFS-3G的商用版本Tuxera NTFS及NTFS for Mac,后两者除了NTFS-3G的原始码以外还有一些非Tuxera开发的用以加强存取性能的专有组件。[1]

主要特性

Linux核心里所包含的NTFS驱动程式(在一些发行版上则是作为单独的内核模块)在内核空间上执行,仅提供读取操作(包括列出文件清单、开启、复制文件),而缺少写入操作(包括建立文件,对文件的修改、更名、移动和删除)的支持。

而NTFS-3G则是借助用户空间文件系统Filesystem in Userspace,FUSE)框架完成挂载,以此支持对NTFS分区的大部分写入操作。

目前实现的特性有:

  • 在NTFS分割上建立任意大小的文件
  • 在NTFS分割上对文件进行更名、移动、删除、修改
  • 支持UTF-8字符集
  • 支持访问控制表权限的修改[2]
  • 支持NTFS硬链接符号链接
  • 支持NTFS透明压缩:对经过NTFS透明压缩的文件进行读取、更名、移动、新增、删除、修改[3]
  • 对NTFS日志的基本支持,除了基本的文件写入操作记录以外,还可完成对NTFS卷文件系统层面上的修复操作
  • 对NTFS加密文件的重命名、复制、移动、删除操作等不涉及文件加密/解密过程的存取操作。

对于NTFS加密,目前为止加密文件的建立、对已有文件进行加密等涉及文件加密/解密的存取操作仍未实现支持。[4]

自ntfs-3g-2009.2.1起,NTFS-3G已经可以默认对含不完整日志的NTFS卷进行恢复及挂接,需要时可通过“norecover”参数禁用这个设置。[5]

支持的操作系统

最初NTFS-3G是Linux-NTFS项目的分支,第一个稳定版本也只运行于Linux上。后来先后被移植至FreeBSDNetBSDOpenSolarisBeOSQNXNucleusVxWorksHaikuMorphOS英语MorphOSMinixMac OS X/macOS(除10.13外[1])、OpenBSDAndroid[6][7][8][9],甚至WinCE等微软尚未有NTFS支持的微软操作系统也有移植支持。

不过,由于NTFS-3G需要依赖FUSE框架运行,像是macOS等类UNIX操作系统并没有内建FUSE,需要先安装FUSE框架方能安装NTFS-3G并使用(像是macOS需要安装FUSE for macOS等FUSE框架。而NTFS-3G的商用版本Tuxera NTFS for Mac则是附带了MacFUSE作为FUSE框架)。[10]

Android对NTFS的支持,理论上以基于Linux核心加载NTFS-3G驱动的方式实现,但AOSP并没有集成任何的NTFS驱动程式,而且也不是所有的Android装置厂商原厂就会用此种支持方式,甚至缺乏对NTFS的支持(如小米系列手机,原厂预载的MIUI缺少一些文件系统的驱动程式,包括NTFS[11]),不过在一些客制固件上,绝大多数通过移植NTFS-3G驱动程式至Linux核心来实现对NTFS的支持。[12]此外,一些装置可以通过获取root权限并安装具备NTFS驱动程式供操作系统核心加载的App,实现对NTFS分割的挂载(如SD卡、通过USB OTG挂载的移动硬盘)。

性能

2007年与2008年的两个评测显示,NTFS-3G的驱动程式性能已能与其它一些使用FUSE的文件系统相比,但较依赖CPU的性能,表示NTFS-3G尚未完成对性能的优化[13][14]

Tuxera官方的使用手册及NTFS-3G手册页上也提到,NTFS-3G当前的开发焦点仍集中在可靠性和实现欠缺的POSIX功能性,存取性能并不是优先考量的,至少需要性能较好的CPU方能获取较好的存取性能。[15]在一些较老的系统或需要低功耗的嵌入式装置上,高CPU使用量会极大地限制NTFS-3G的存取性能(尤其是写入性能),[16]OpenWRT/LEDE的官方说明文档中也告知对性能较为注意的用户尽量避免使用NTFS文件系统。[17]

延伸项目

ntfsprogs英语ntfsprogs是一套类Unix系统下的工具集,用于对NTFS卷进行建立、修改、删除等多种操作。最初复刻自NTFS-3G。2011年4月,ntfsprogs合并至NTFS-3G项目,并持续维护至今。

发展过程

  • 自2006年10月31日起,NTFS-3G独立成项目,不再是Linux-NTFS项目的一部分。
  • 于2007年2月21日,Szabolcs Szakacsits宣布“第一个开放原始码、完全自由、稳定的读写NTFS的驱动程式,NTFS-3G 1.0发布”。
  • 自ntfs-3g-2009.1.1版起已经对UTF-8字符集实现完整支持
  • 2009年10月5日,Tuxera发布NTFS-3G for Mac,并推出了含专有组件的商用版Tuxera NTFS。[18]
  • 自ntfs-3g-2009.11.14版开始支持新增透明压缩的文件、对透明压缩档案的更名。
  • 自ntfs-3g-2010.8.8版开始可对已有经过透明压缩的文件的修改操作。
  • 2011年4月12日,宣布ntfsprogs项目合并至NTFS-3G。

类似软件

  • Tuxera NTFS及NTFS for Mac —— NTFS-3G的商用版,内含一些对存取性能有提升的专有组件
  • Paragon NTFS —— 专有软件,Paragon Software Group英语Paragon Software Group开发的一套运行于操作系统核心空间的NTFS文件系统驱动程式
  • NTFS4DOS —— 专有免费软件,运行于MS-DOS上的NTFS文件系统驱动程式

参考资料

  1. ^ 1.0 1.1 NTFS on macOS Sierra: Paragon or Tuxera?. alexw. 2017-04-14 [2018-04-05]. (原始内容存档于2018-04-05). 
  2. ^ NTFS-3G: NTFS Driver with Ownership and permissions. [2008-04-23]. (原始内容存档于2019-10-18). 
  3. ^ Data Compression - Tuxera. [2018-02-15]. (原始内容存档于2018-02-16). 
  4. ^ NTFS-3G FAQ. [2018-04-02]. (原始内容存档于2018-02-19). 
  5. ^ NTFS-3G 2009.2.1 changelog. [2018-04-02]. (原始内容存档于2009-03-23). 
  6. ^ 引用错误:没有为名为community-edition的参考文献提供内容
  7. ^ OpenBSD adds fuse(4) support for adding file systems in userland. OpenBSD Journal. 2013-11-08 [2013-11-08]. (原始内容存档于2013-11-10). 
  8. ^ ntfs_3g-2014.2.15 – FUSE NTFS driver with read/write support. OpenBSD ports. 2014-01-05 [2015-02-14]. (原始内容存档于2014-11-08). 
  9. ^ NTFS-3G for Mac OS X ("Catacombae"). [2018-04-02]. (原始内容存档于2017-11-28). 
  10. ^ Home - FUSE for macOS. osxfuse.github.io. [2018-04-03]. (原始内容存档于2018-02-26). 
  11. ^ Forum, Xiaomi MIUI Official. MIUI does not support exFAT, NTFS, UDF and ext4 file system for micro sdxc. - MIUI General - Xiaomi MIUI Official Forum. en.miui.com. [2018-04-04]. (原始内容存档于2018-04-05). 
  12. ^ Full NTFS Read/Write Support for Android. xda-developers. 2012-06-25 [2018-04-04]. (原始内容存档于2017-01-11). 
  13. ^ 比較 JFS、XFS、NTFS-3G 和 ZFS-FUSE 的效能. [2008-04-23]. (原始内容存档于2008-04-30). 
  14. ^ 10 個檔案系統的評測. [2017-09-05]. (原始内容存档于2008-02-16). 
  15. ^ Performance at Tuxera. [2018-04-02]. (原始内容存档于2011-05-22). 
  16. ^ Raspberry Pi 2 vs Banana Pi ext4 vs NTFS vs exFAT •. HTPC Guides. 2015-03-19 [2018-04-05]. (原始内容存档于2017-07-19). 
  17. ^ OpenWrt Project: Filesystems. openwrt.org. [2018-04-05]. (原始内容存档于2018-04-05) (英语). 
  18. ^ NTFS-3G for Mac OS X is now Tuxera NTFS for Mac. [2018-04-02]. (原始内容存档于2018-04-03). 

外部链接