NTFS-3G
NTFS-3G是一个由Tuxera公司开发并维护的自由软件项目,采用GNU通用公共许可证发布,旨在为非微软Windows NT系的操作系统提供安全快速、具备读写功能的NTFS文件系统驱动程式。
开发者 | Szabolcs Szakacsits,Tuxera Inc. |
---|---|
当前版本 | 2022.10.3(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上。后来先后被移植至FreeBSD、NetBSD、OpenSolaris、BeOS、QNX、Nucleus、VxWorks、Haiku、MorphOS、Minix、Mac OS X/macOS(除10.13外[1])、OpenBSD、Android等[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是一套类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开发的一套运行于操作系统核心空间的NTFS文件系统驱动程式
- NTFS4DOS —— 专有免费软件,运行于MS-DOS上的NTFS文件系统驱动程式
参考资料
编辑- ^ 1.0 1.1 NTFS on macOS Sierra: Paragon or Tuxera?. alexw. 2017-04-14 [2018-04-05]. (原始内容存档于2018-04-05).
- ^ NTFS-3G: NTFS Driver with Ownership and permissions. [2008-04-23]. (原始内容存档于2019-10-18).
- ^ Data Compression - Tuxera. [2018-02-15]. (原始内容存档于2018-02-16).
- ^ NTFS-3G FAQ. [2018-04-02]. (原始内容存档于2018-02-19).
- ^ NTFS-3G 2009.2.1 changelog. [2018-04-02]. (原始内容存档于2009-03-23).
- ^ 引用错误:没有为名为
community-edition
的参考文献提供内容 - ^ OpenBSD adds fuse(4) support for adding file systems in userland. OpenBSD Journal. 2013-11-08 [2013-11-08]. (原始内容存档于2013-11-10).
- ^ ntfs_3g-2014.2.15 – FUSE NTFS driver with read/write support. OpenBSD ports. 2014-01-05 [2015-02-14]. (原始内容存档于2014-11-08).
- ^ NTFS-3G for Mac OS X ("Catacombae"). [2018-04-02]. (原始内容存档于2017-11-28).
- ^ Home - FUSE for macOS. osxfuse.github.io. [2018-04-03]. (原始内容存档于2018-02-26).
- ^ 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).
- ^ Full NTFS Read/Write Support for Android. xda-developers. 2012-06-25 [2018-04-04]. (原始内容存档于2017-01-11).
- ^ 比較 JFS、XFS、NTFS-3G 和 ZFS-FUSE 的效能. [2008-04-23]. (原始内容存档于2008-04-30).
- ^ 10 個檔案系統的評測. [2017-09-05]. (原始内容存档于2008-02-16).
- ^ Performance at Tuxera. [2018-04-02]. (原始内容存档于2011-05-22).
- ^ Raspberry Pi 2 vs Banana Pi ext4 vs NTFS vs exFAT •. HTPC Guides. 2015-03-19 [2018-04-05]. (原始内容存档于2017-07-19).
- ^ OpenWrt Project: Filesystems. openwrt.org. [2018-04-05]. (原始内容存档于2018-04-05) (英语).
- ^ NTFS-3G for Mac OS X is now Tuxera NTFS for Mac. [2018-04-02]. (原始内容存档于2018-04-03).
外部链接
编辑- NTFS-3G官方原始码及预编译二进制档下载(页面存档备份,存于互联网档案馆)
- SourceForge项目页面(页面存档备份,存于互联网档案馆)
- NTFS-3G for Mac OS X ("Catacombae")(页面存档备份,存于互联网档案馆)
- Writing on NTFS volumes on Mac OS X through NTFS-3G and OS X FUSE for free (works with Lion & Mountain Lion)(页面存档备份,存于互联网档案馆)
- Why are there no true cross-platform filesystems?