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?