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). 

外部連結