NTFS-3G

**NTFS-3G** 是一個由 Tuxera 公司開發並維護的自由軟體項目，採用 GNU 通用公共許可證釋出，旨在為非微軟 Windows NT 系的作業系統提供安全快速、具備讀寫功能的 NTFS 檔案系統驅動程式。

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 開發的用以加強存取效能的專有元件。

## 主要特性

Linux 核心裡所包含的 NTFS 驅動程式（在一些發行版上則是作爲單獨的核心模組）在核心空間上執行，僅提供讀取操作（包括列出檔案清單、開啓、複製檔案），而缺少寫入操作（包括建立檔案，對檔案的修改、更名、移動和刪除）的支援。

而 NTFS-3G 則是藉助使用者空間檔案系統（**F**ilesystem in **Use**rspace，FUSE）框架完成掛載，以此支援對 NTFS 分割區的大部分寫入操作。

目前實現的特性有：

* 在 NTFS 分割上建立任意大小的檔案
* 在 NTFS 分割上對檔案進行更名、移動、刪除、修改
* 支援 UTF-8 字元集
* 支援存取控制串列和權限的修改
* 支援 NTFS 硬連結和符號連結
* 支援 NTFS 透明壓縮：對經過 NTFS 透明壓縮的檔案進行讀取、更名、移動、新增、刪除、修改
* 對 NTFS 日誌的基本支援，除了基本的檔案寫入操作記錄以外，還可完成對 NTFS 卷檔案系統層面上的修復操作
* 對 NTFS 加密檔案的重新命名、複製、移動、刪除操作等不涉及檔案加密 / 解密過程的存取操作。

對於 NTFS 加密，目前爲止加密檔案的建立、對已有檔案進行加密等涉及檔案加密 / 解密的存取操作仍未實現支援。

自 ntfs-3g-2009.2.1 起，NTFS-3G 已經可以預設對含不完整日誌的 NTFS 卷進行恢復及掛接，需要時可通過「norecover」參數禁用這個設定。

## 支援的作業系統

最初 NTFS-3G 是 Linux-NTFS 專案的分支，第一個穩定版本也只運行於 Linux 上。後來先後被移植至 FreeBSD、NetBSD、OpenSolaris、BeOS、QNX、Nucleus、VxWorks、Haiku、MorphOS、Minix、Mac OS X/macOS（除 10.13 外）、OpenBSD、Android 等，甚至 WinCE 等微軟尚未有 NTFS 支援的微軟作業系統也有移植支援。

不過，由於 NTFS-3G 需要依賴 FUSE 框架運行，像是 macOS 等類 UNIX 作業系統並沒有內建 FUSE，需要先安裝 FUSE 框架方能安裝 NTFS-3G 並使用（像是 macOS 需要安裝 FUSE for macOS 等 FUSE 框架。而 NTFS-3G 的商用版本 Tuxera NTFS for Mac 則是附帶了 MacFUSE 作爲 FUSE 框架）。

Android 對 NTFS 的支援，理論上以基於 Linux 核心載入 NTFS-3G 驅動的方式實現，但 AOSP 並沒有整合任何的 NTFS 驅動程式，而且也不是所有的 Android 裝置廠商原廠就會用此種支援方式，甚至缺乏對 NTFS 的支援（如小米系列手機，原廠預載的 MIUI 缺少一些檔案系統的驅動程式，包括 NTFS），不過在一些客製韌體上，絕大多數通過移植 NTFS-3G 驅動程式至 Linux 核心來實現對 NTFS 的支援。此外，一些裝置可以通過獲取 root 權限並安裝具備 NTFS 驅動程式供作業系統核心載入的 App，實現對 NTFS 分割的掛載（如 SD 卡、通過 USB OTG 掛載的行動硬碟）。

## 效能

2007 年與 2008 年的兩個評測顯示，NTFS-3G 的驅動程式效能已能與其它一些使用 FUSE 的檔案系統相比，但較依賴 CPU 的效能，表示 NTFS-3G 尚未完成對效能的最佳化。

Tuxera 官方的使用手冊及 NTFS-3G 手冊頁上也提到，NTFS-3G 當前的開發焦點仍集中在可靠性和實作欠缺的 POSIX 功能性，存取效能並不是優先考量的，至少需要效能較好的 CPU 方能取得較好的存取效能。在一些較老的系統或需要低功耗的嵌入式裝置上，高 CPU 使用量會極大地限制 NTFS-3G 的存取效能（尤其是寫入效能），OpenWRT/LEDE 的官方說明文件中也告知對效能較爲注意的使用者儘量避免使用 NTFS 檔案系統。

## 延伸專案

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。
* 自 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 檔案系統驅動程式

## 參考資料

## 外部連結

* 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?