NTFS


NTFS (简体)

Free Web Hosting with Website Builder
NTFS
開發商 Microsoft
全稱
發布 1993年7月 (Windows NT 3.1)
分區標識 0x07 (主引導記錄(MBR))
基本數據分區(BDP) (GUID分區表(GPT))
結構
目錄內容 B+樹[1]
文件分配 Bitmap/Extents
壞塊 $badclus
限制
最大文件大小 264 位元組(16 EiB) - 1 KiB [2]
最大文件數量 4,294,967,295 (232-1)[2]
最長文件名限制 255 UTF-16 編碼單元[3]
最大卷大小 264 − 1 簇[2]
文件名允許的字元數 在Posix命名空間中,非U+0000 (NUL)和/ (斜杠)的任何UTF-16 字元(大小寫敏感)。在Win32命名空間中,非U+0000 (NUL)、/ (斜杠)、\ (反斜杠)、: (冒號)、* (星號)、? (問號)、" (引號)、< (小於號)、> (大於號)和| (豎線(管道符))的任何UTF-16字元(大小寫不敏感)。[3]
功能
記錄日期 創建、修改、POSIX 更改、訪問
日期範圍 1601年1月1日 – 60056年5月28日(文件時間為 64 位數字,計時間隔為 100 奈秒(每秒一百萬次),從 1601 年開始持續 58000+ 年)
日期解析度 100ns
岔流 是(請參見下面的可選數據流')
屬性 只讀、隱藏、系統、存檔、內容未索引、離線、臨時
訪問許可權 訪問控制列表(ACL)
透明壓縮 對每個文件,LZ77Windows NT 3.51 以上)
透明加密 對每個文件
DESX(Windows 2000 以上)
Triple DES(Windows XP 以上)
高級加密標準(AES) (Windows XP Service Pack 1、Windows Server 2003 以上)
支持作業系統 Windows NT 家族(Windows NT 3.1Windows NT 4.0Windows 2000Windows XPWindows Server 2003Windows VistaWindows Server 2008Windows 7)

NTFSWindows NT以及之後的Windows 2000Windows XPWindows Server 2003Windows Server 2008Windows VistaWindows 7的標準文件系統[4]

NTFS取代了文件分配表(FAT)文件系統,為MicrosoftWindows系列作業系統提供文件系統。NTFS對FAT和HPFS(高性能文件系統)作了若干改進,例如,支持元數據,並且使用了高級資料結構,以便於改善性能、可靠性和磁碟空間利用率,並提供了若干附加擴展功能,如訪問控制列表(ACL)和文件系統日誌。該文件系統的詳細定義屬於商業秘密[5][6][7] ,但 Microsoft 已經將其註冊為 知識產權產品。[8][9]

目錄

歷史

20 世紀 90 年代早期,Microsoft 和 IBM 組建了一個聯合計劃,目標是創建一個下一代的操作系統。該項目的結果是誕生了 OS/2,但由於 Microsoft 和 IBM 在很多重要問題上不能達成共識而最後分裂, OS/2 至今仍屬於 IBM。Microsoft 開始研究 Windows NT。OS/2 的文件系統 HPFS 包含了若干重要功能,而當 Microsoft 開始創建他們自己的新操作系統時,他們的 NTFS 從中借用汲取了很多方面。[10] 也許是因為它們有共同的祖先,HPFS 和 NTFS 共享了相同的磁盤分區標識代碼(0x07)。共享標識是很不尋常的,因為可用的代碼還有很多,其他文件系統都使用它們自己的編號。例如,FAT 擁有超過 9 個編號(FAT12、FAT16、FAT32 等等每個都有一個)。用於區分文件系統的演算法當遇到代碼 0x07 的時候就不得不進行額外的檢查。

版本

NTFS 有五個正式發布的版本:

  • v1.0,隨 NT 3.1 一起發布[來源請求],發佈於 1993 年中旬
  • v1.1,隨 NT 3.5 一起發布[來源請求],發佈於 1994 年秋季
  • v1.2,由 NT 3.51(1995 年中旬)和 NT 4(1996 年中旬)提供(有時候也被稱為「NTFS 4.0」,因為作業系統版本是 4.0)
  • v3.0 來自 Windows 2000(有時稱作「NTFS 5.0」)
  • v3.1 來自 Windows XP(2001 年秋季,有時稱作「NTFS 5.1」),Windows Server 2003(2003 年春季,有時稱作「NTFS 5.2」), Windows Vista(2005 年中旬,有時稱作「NTFS 6.0」)以及 Windows Server 2008(2008 年初)

V1.0 和 V1.1 以及所有以後版本不兼容,也就是說,使用 NT 3.5x 寫入的卷無法被 NT 3.1 讀取,除非使用 NT 3.5x 光碟更新 NT 3.1,並添加對 FAT 系統的長文件名支持。[11] V1.2 支持壓縮文件、命名流、基於 ACL(訪問控制列表)的安全性等功能。[1]
V3.0 支持磁碟限額、加密、稀疏文件、重解析點[來源請求],更新序列數(USN)日誌、$Extend 文件夾以及其中的文件,並改進了安全描述符,以便於使用相同安全設置的多個檔案分享一個安全描述符。[1]
V3.1 使用冗余 MFT 記錄數(用於恢復受損的 MFT 文件)擴展了主文件表(MFT)項

Windows Vista 提供了事務 NTFS、NTFS 符號連結、收縮卷以及自我恢復功能,[12]但這些附加功能由作業系統提供,而非文件系統自身的功能。

功能

相對於之前的版本,NTFS v3.0 包含若干新功能:磁碟使用限額、稀疏文件支持、重解析點、分佈連結跟蹤,以及文件級加密(也即「加密文件系統(EFS)」)。

可選數據流(ADS)

可選數據流允許文件與多個數據流進行關聯。例如,一個名為 text.txt 的文件可以包含一個名為 text.txt:secret(格式是「文件名:流名」)的可選數據流,並只允許知道該數據流名稱或專門為數據流而設計的瀏覽程序查看。可選數據流無法從原始文件長度中得知,但會隨著對原始文件的 RemoveFile 或 RemoveFileTransacted 調用(以及調用它們的調用),或將原始文件移動/複製到不支持可選數據流的分區(如 FAT 分區、軟盤或網路共享位置)上而丟失。可選數據流在多方面有重要用途,但也容易因為被遺忘或未被探測到而白白耗費磁碟空間。

限額

磁碟限額是 NTFS v3 提出的功能。該功能允許計算機管理員在支持該功能的 Windows 版本上為用戶允許佔用的磁碟空間設置閾值,同時也允許管理員跟蹤察看每個用戶使用的磁碟空間量。管理員可以為用戶設置需要收到警告的磁碟空間使用級別,併當他們超過使用上限時拒絕對磁碟的訪問。當 NTFS 的文件壓縮啟用時,磁碟限額不會影響該功能。當應用程序查詢用戶可用的剩餘磁碟空間時,如果設置了磁碟限額,也會收到限額的數值。

稀疏文件

稀疏文件是包含稀疏數據集的文件,大部分數據為零。許多科學應用程序會創建非常大的稀疏數據集,因此,Microsoft 實現了對稀疏文件的高效存儲支持,允許應用程序指定文件的空(零)數據區域。讀取稀疏文件的應用程序可以使用常規方法讀取數據,作業系統將根據當前位置的偏移量決定需要返回什麼數據。當作為壓縮文件時,文件的實際大小不會影響對磁碟限額的判斷。[13][14]

重解析點

該功能在 NTFS v3 中可用。該功能將在用戶空間中為文件或目錄添加一個關聯的重解析標記屬性。當對象管理器(清參見Windows NT 線執行)解析文件系統名稱並遇到重解析點屬性時,它將「重解析」名稱,將用戶控制的重解析數據傳遞給所有 Windows 系統載入的文件過濾驅動程序。每個過濾驅動程序都將檢查重解析數據,判斷是否和該重解析點相關聯。如果過濾驅動程序判定匹配,則將攔截文件系統調用,並執行自己的特定功能。重解析點用於實現卷載入點、目錄連接、分層存儲管理、本機結構存儲,以及單實例存儲。

卷載入點

類似於 Unix 載入點,是另一個文件系統附加到目錄的根位置。在 NTFS 中,該功能允許附加的文件系統無需為每個驅動器分配單獨的卷標(如 C:D:)而載入。

目錄連接

類似於卷載入點,但 目錄連接將對象連接到文件系統中的其他目錄而非卷。例如,目錄 C:\exampledir 帶有一個目錄連接屬性,連結到 D:\linkeddir,則當用戶級別的應用程序訪問時,將自動引用到目錄 D:\linkeddir[1]該功能在概念上類似於 Unix 的目錄符號連結,只是在 NTFS 中目標必須是另一個目錄(典型的 Unix 文件系統允許將符號連結連接到任何其它類型的文件)。

硬連結

原本用於支持 Windows NT 中的 POSIX 子系統[15]。硬連結類似於目錄連接,但用於文件而非目錄。硬連結只能作用於同一個卷上的文件,因為需要在文件的 MFT 記錄中添加附加的文件名記錄。短格式(8.3)文件名也被作為不區分目錄項的地附加文件名實現。

分層存儲管理(HSM)

分層存儲管理是一種轉移一定時間不用的文件到價值更低的儲存介質中的方法。當文件再次被訪問時,文件上的重解析點將判定文件需要被使用,並將文件從儲存介質中恢復出來。

本機結構存儲(NSS)

本機結構存儲是一種已經被 Microsoft 終止使用的 ActiveX 文檔存儲技術。該技術允許 ActiveX 文檔 使用和 ActiveX 內部是用的多流格式相同的方式進行儲存。系統將載入一個本機結構存儲文件系統過濾器以用於為應用程序透明地處理多流格式。當文件被傳輸到非 NTFS 格式的磁碟卷上時,也將同時將多個流轉換為一個流。[16]

卷影複製

卷影複製(VSC)服務通過將新改寫的數據複製到卷影(寫入時複製)來保存 NTFS 卷上的文件和文件夾的歷史版本。當用戶請求恢復舊早期版本時,舊的文件數據將會覆蓋新的文件數據。該功能也使得數據備份程序可以存檔當前系統正在使用的文件。對於負載較重的系統,Microsoft 建議將卷影副本設置到單獨的磁碟上,以減小系統主要卷的 I/O 負載。

文件壓縮

NTFS 能夠使用多種 LZ77 演算法(該演算法也用於著名的 ZIP 文件格式)壓縮文件。[17]儘管對於壓縮文件的讀寫操作是透明的,Microsoft 仍然建議用戶避免在伺服器系統和保存漫遊配置文件的網路共享位置啟用壓縮,因為壓縮會給處理器增加較為明顯的負載。[18]
硬碟空間首限的單用戶作業系統可以有效地利用 NTFS 壓縮。[來源請求] 由於在計算機中速度最慢的訪問不是 CPU 而是硬碟,因此 NTFS 壓縮可以同時提高受限制的、慢速儲存空間的空間和速度利用率。[19]當某個程序(通常如下載管理器)無法創建沒有內容的配額文件時,NTFS 壓縮也可以作為配額文件的替代使用。

單實例存儲(SIS)

當若幹個不同目錄中存有內容相同的文件時,單實例存儲允許將相同文件歸併到一個單一文件中,並創建對歸併後的文件的引用。單實例存儲包含一個用於管理複製、修改和歸併文件的文件系統過濾器和一個用於搜索需要歸併的相同文件的用戶空間服務(「groveler」)。單實例存儲的主要設計目標是遠程安裝伺服器,這些伺服器上往往擁有多個包含許多相同文件的安裝鏡像,單實例存儲可以將它們統一起來。但和硬連結不同,每個文件仍然是獨立的,更改任何一個副本都不會影響其它文件。和寫入時複製類似,該技術不會立即完成內存複製,直到某個副本被更改。[20]

加密文件系統(EFS)

加密文件系統(EFS)提供對 NTFS 卷上任意文件和文件夾的用戶透明的強保護。 加密文件系統與 EFS 服務、Microsoft 的加密應用程序介面(CryptoAPI)以及 EFS 文件運行時庫(FSRTL)聯合工作。
EFS 使用塊對稱密鑰(也被稱為「文件加密密鑰(FEK)」)加密文件,這比起使用非對稱密鑰加密在加密和解密大量數據時消耗的時間較少。該對稱密鑰使用一個和加密文件的用戶相關的公鑰加密文件,加密後的數據儲存在被加密文件的可選數據流中。當需要解密文件時,文件系統使用用戶的密鑰解密儲存在文件頭中的對稱密鑰,然後使用該對稱密鑰解密文件。這些操作在文件系統級別完成,因此對用戶來說是透明的。[21] 同時,為了處理用戶丟失密鑰的情況,加密文件系統中提供了對附加解密密鑰的支持,因此恢復代理在需要時仍然可以訪問數據。

符號連結

符號連結是 Windows Vista 提供的功能。符號連結(也稱軟連結)在客戶端進行解析,因此當共享符號連結時,目標會受到客戶端的訪問限制,而和伺服器無關。

事務 NTFS

在 Windows Vista 中,應用程序可以使用事務 NTFS 將一系列對文件的更改歸組到一個事務中。事務能夠確保所有更改要麼同時生效,要麼同時作廢,並能確保在事務提交完成前,外部應用程序無法獲知任何更改。[22]

USN 日誌

USN 日誌是一項系統管理功能,能夠記錄卷上文件和文件夾的所有更改。

互操作性

NTFS 具體實現的內部細節被保密,因此這導致第三方開發者試圖製作處理 NTFS 的工具變得異常困難。

Linux

完整並安全的對 NTFS 的讀寫功能由 NTFS-3G 驅動程序提供。該驅動程序包含在絕大多數 Linux 發行包 中。同時也存在過時的,大部分僅只讀的解決方案:

  • Linux 核心 2.2: 從版本 2.2.0 開始,可以讀取 NTFS 分區。
  • Linux 核心 2.6: 包含一個由 Anton Altaparmakov(來自劍橋大學)和 Richard Russon 編寫的驅動程序,該驅動程序支持讀取文件以及在部分情況下的改寫文件和調整文件大小。
  • NTFSMount: 使用 ntfsmount 可以通過一個用戶級驅動程序對文件和目錄進行有限的讀寫操作。[23]
  • NTFS for Linux: 由 Paragon 提供的對 NTFS 提供完整讀寫支持的商用驅動程序。
  • Captive NTFS: 一個使用 Windows 自身的驅動程序「ntfs.sys」並進行簡單封裝的驅動程序。

請注意,上面所有三個用戶級別驅動程序(NTFSMount、NTFS-3G 以及 Captive NTFS)都基於用戶空間的文件系統(FUSE),該系統是一個用於在用戶空間和核心代碼間通訊以獲取或保存數據的 Linux 核心模塊。技術上面所有的驅動程序(除了 Paragon NTFS for Linux)都是開源GPL)的。由於 NTFS 內部結構非常複雜,內置的 2.6.14 核心驅動程序和 FUSE 都不允許修改被認為是不安全的卷,以避免發生損壞事故。

Microsoft Windows

儘管絕大多數 NTFS 版本的絕大部分都完全向前以及向後兼容,在舊版本的 Microsoft Windows 載入新版本的 NTFS 卷仍然存在不少技術問題。這往往會影響到多重啟動,以及外部可攜帶的硬碟。

例如,在不支持的作業系統上嘗試使用帶有「先前版本」(嚴格的說稱為卷影副本)的 NTFS 分區,會導致這些先前的版本產生丟失。[24]

其他

eComStation、KolibriOS,以及 Mac OS X 版本 10.3 及以後版本都提供對 NTFS 的只讀訪問支持(eComStation 有一個測試版本的驅動程序允許寫入/刪除操作,但通常認為該驅動程序還不安全)。BeOS 有一個基於 NTFS-3G 的的第三方工具,允許完整的 NTFS 讀寫操作。除了 Linux, NTFS-3G 也能工作在 Mac OS XFreeBSDNetBSDSolaris 以及 Haiku 上。同時,也有一個稱為「NTFS4DOS」的商用驅動程序允許在 DOS 下進行讀寫。[25]Mac OS X 有一個商用的可讀寫的 NTFS 驅動程序,名稱為「Paragon NTFS for Mac OS X」。[26]

和 FAT 的兼容性

Microsoft 當前提供了一個工具(convert.exe),可以將HPFS(僅 Windows NT 3)、FAT16 以及在 Windows2000 以上的 FAT32 卷轉換為 NTFS,但沒有提供任何其它途徑。[27]有許多第三方工具可以安全地重新調整 NTFS 分區的大小。在 Windows Vista 中,Microsoft 添加了收縮和擴展分區的功能,但該功能非常有限,因為該功能不會整理頁面文件碎片或標記為不可移動的文件,因此限制了對分區的收縮能力。取消頁面文件重新啟動或使用第三方的工具進行磁碟碎片整理可能能產生一定效果。

由於歷史原因,所有不支持 NTFS 的 Windows 系統內部都將時間記錄為本地時區時間,因此當前版本的 Windows 支持其他所有版本的文件系統。而 Windows NT 及以此派生的系統使用通用協調時間(UTC)記錄內部時間戳,並在顯示時進行必要的轉換,也就是說,NTFS 是 UTC 時間。這意味著當在 NTFS 和非 NTFS 分區間移動或複製文件時,作業系統需要轉換時間戳。但如果被移動的部分文件使用了夏時制,而其他文件使用了標準時間,則轉換會導致不能確定結果。特別是當在本地時區時間更改的短暫時刻中,用戶可能會發現部分文件的時間戳錯開了一小時。由於夏時制在南北半球的實現不一致,可能會導致在任意 12 個月中產生最多 4 個小時的時間戳錯誤。[28]

內部實現

在 NTFS 中,所有文件數據——文件名、創建日期、訪問許可權,以及內容——都作為元數據儲存在主文件表中。這種抽象的實現方式使得隨著 Windows NT 的發展而添加文件系統功能變得非常容易。一個很典型的例子是為使用 Active Directory(活動目錄)的應用程序添加用於索引的欄位。

NTFS 允許為名稱編碼(包括文件名稱、流名稱、索引名稱等)使用任意序列的 16 位值。這意味著支持 UTF-16 碼位,但文件系統不會檢查某個 UTF-16 序列是否有效(也即允許任意短整數序列,不受 Unicode 標準的限制)。

在內部,NTFS 使用 B+ 樹索引文件系統數據。儘管該方式實現較為複雜,但能夠在大多數情況下提高文件的查找速度。文件系統日誌用於確保文件的元數據完整,而不是孤立的文件內容。相比于使用 FAT 的文件系統,使用 NTFS 的文件系統能夠提高可靠性。[29]

主文件表(MFT)包含每個文件及目錄的元數據,以及 NTFS 卷的元文件。這其中包括文件名、位置、大小,以及許可權。它的結構和演算法被設計為可以最小化磁碟碎片。目錄項包含一個文件名和一個「文件 ID」,該 ID 表示文件在主文件表中的記錄編號。文件 ID 同時包含重複使用計數值,用於檢測過期的引用。這種結構非常類似 Files-11 的 W_FID,但 NTFS 的其他結構卻有著根本的區別。

元文件

NTFS 包含若干用於定義和組織文件系統的文件。總體來說,這些文件中的絕大多數結構和其它用戶文件類似(「$Volume」是最特殊的),但不能被文件系統客戶端直接訪問。這些元文件用於定義文件、備份文件系統關鍵數據、緩存文件系統的更改、管理空閒空間的分配、滿足 BIOS 的要求、跟蹤壞扇區單元,以及儲存安全信息和磁碟空間使用情況。

區段編號 文件名 作用
0 $MFT 描述卷上的所有文件,包括文件名、時間戳、流名稱和數據流所在的簇的編號列表、索引、安全標識符,以及文件屬性(如「只讀」、「壓縮」、「加密」等)。
1 $MFTMirr $MFT 的最開始的幾個關鍵項的副本,通常是 4 項(4KiB)。
2 $LogFile 包含文件系統更改的事務日誌,以保護元數據的穩定性。
3 $Volume 包含卷的相關信息,如卷對象標識符、卷標、文件系統版本,以及卷標誌(載入、需要掃描、需要調整 $LogFile 大小、在 NT4 上載入、正在更新卷序列號、需要升級結構)。卷序列號儲存在 $Boot 文件中。
4 $AttrDef 使用的 NTFS 屬性的表,包含名稱、編號和描述。
5 . 根目錄
6 $Bitmap 一個點陣圖,用於指示卷上的指定簇正在被使用或空閒。
7 $Boot 卷引導記錄,該文件位於卷的第一個簇,其中包含引導代碼(用於定位並啟動 NTLDR/[[Windows Vista 啟動過程#Windows 引導管理器|BOOTMGR)、一個 BIOS 參數區塊(其中包含卷序列號),以及 $MFT 和 $MFTMirr 所在的簇編號。
8 $BadClus 包含所有標記為「有壞扇區」的簇的一個文件。該文件用於為 chksdk(磁碟掃描)工具簡化簇的管理,用於放置新發現的壞扇區,以及標識未被引用的簇。
9 $Secure 訪問控制列表(ACL)資料庫,統一將 ACL 存儲於該資料庫中而非每個文件存儲各自的 ACL 以減少總體代價。包含兩個索引:$SII——可能是[來源請求]安全 ID 索引,以及 $SDH——安全描述符哈希,用於索引包含實際 ACL 列表的稱為 $SDS 的流的位置。[1]
10 $UpCase 一個 Unicode 大寫字母表,用於確保在 Win32 和 DOS 命名空間下大小寫不敏感。
11 $Extend 一個文件系統目錄,包含若干不定的可選擴展,如 $Quota、$ObjId、$Reparse、$UsnJrnl 等。
12 ... 23 保留。
usually 24 $Extend\$Quota 包含關於磁碟限額的信息。
usually 25 $Extend\$ObjId 包含用於分佈連結跟蹤的信息。
usually 26 $Extend\$Reparse 包含對卷上所有重解析點(如符號連結)的反引用。
27 ... file.ext 常規文件項的開始位置。

這些元文件會被 NTFS 專門處理,很難直接查看。需要使用專門為此設計的工具完成實現該功能。

常駐文件和非常駐文件

為了優化通常情況下小數據文件的存儲,NTFS 選擇在文件大小能夠放入 MFT 的情況下直接把文件放入 MFT,而不是使用 MFT 標記包含數據的簇的列表。這種形式被計算機取證工作者稱為「常駐數據」。滿足條件的數據量和文件的特徵高度相關,但通常情況下,一個單流無長度無 ACL 的文件大概包含 700 到 800 個位元組。被 NTFS 加密的文件、稀疏文件以及被壓縮的文件無法常駐。

由於常駐文件不直接佔據簇(「分配單元」),使得 NTFS 卷有個能包含比簇更多的文件。例如,一個 80GB(74.5GiB)的分區,NTFS 格式化為 19,543,064 個 4KiB 的簇。除去系統文件(64MiB 日誌文件,一個 2,442,888 位元組的點陣圖,以及大約 25 個簇的固定頭部),還剩餘 19,526,158 個簇可用於文件和索引。由於每個簇有 4 個 MFT 記錄,因此卷理論上可以包含將近 4 × 19,526,158 = 78,104,632 個常駐文件。

限制

下面是一些 NTFS 的限制:

保留的文件名
儘管文件系統支持最長 32767 個 Unicode 字元的的路徑[30]。每個路徑組成部分(目錄或文件名)最多可以有 255 個字元[30]長,但不允許使用某些特定名稱,因為 NTFS 將元數據儲存在通常(儘管是隱藏的,並且大部分不可訪問)的文件夾中。同理,用戶也不能使用這些名稱作為文件名。這些文件都存在於卷的根目錄中(名稱也僅在根目錄中被保留)。被保留的名稱有:$MFT、$MFTMirr、$LogFile、$Volume、$AttrDef、.(點)、$Bitmap、$Boot、$BadClus、$Secure、$Upcase,以及 $Extend[2]。.(點)和 $Extend 是文件夾,其它項目是文件。
最大捲尺寸
理論上來說,NTFS 的最大尺寸是 264-1 個簇。但是目前在 Windows XP Professional 中實現的 NTFS 卷的最大尺寸是 232-1 個簇。例如,使用大小為 64KiB 的簇,則 NTFS 卷的最大尺寸是 256TiB 減去 64KiB。使用默認的 4KiB 的簇大小,則 NTFS 卷的最大尺寸是 16TiB 減去 4KiB。由於主引導記錄(MBR)上的分區表只支持最大 2TiB 的分區,要創建超過 2TiB NTFS 卷,必須使用動態卷或者 GPT 卷。
最大文件尺寸
理論值:16EiB 減去 1KiB(264 − 210 位元組)。實際實現:16TiB 減去 64KiB(244 − 216 位元組)
可選數據流
Windows 系統調用可能處理,也可能不處理可選數據流。[2]根據作業系統、工具和遠程文件系統的情況,文件傳輸過程可能會無任何提示地丟棄數據流。[2]複製或移動文件的安全方式是使用 BackupRead 和 BackupWrite 系統調用,這些調用允許程序枚舉流並驗證每個流是否被需要寫入目標卷以跳過不需要的流。[2]
最大路徑長度
絕對路徑最多允許 32767 個字元[30]。相對路徑被限制在 255 個字元。
日期範圍
NTFS 使用和 Windows NT 相同的計算方式:64 位時間戳,允許範圍從 1601年1月到 60056年5月28日,解析度是每秒鐘一百萬個計數單位。

開發者

NTFS 開發者包括:

  • Tom Miller
  • Gary Kimura
  • Brian Andrew
  • David Goebel

另請參閱

  • 文件系統比較
  • Files-11 — ODS-2 非常類似於 NTFS(如相比較于 INDEXF.SYS$MftBITMAP.SYS$Bitmap
  • HPFS,為 OS/2 作業系統開發的文件系統
  • ntfsresize
  • Samba(軟體)

參考文獻

  1. ^ 1.0 1.1 1.2 1.3 1.4 Mark Russinovich.Inside Win2K NTFS, Part 1Microsoft Developer Network.於2008年4月18日查閱.
  2. ^ 2.0 2.1 2.2 2.3 2.4 2.5 2.6 Microsoft Corporation.How NTFS Works.於2008年1月27日查閱.
  3. ^ 3.0 3.1 Richard Russon and Yuval Fledel.NTFS Documentation.於2007年7月1日查閱.
  4. ^ Custer, Helen(1994).Inside the Windows NT File System.Microsoft Press.ISBN 978-1-55615-660-1. 
  5. ^ File Systems Unraveled: New Technolgy File Systems.How-To Guides,3.pcnineoneone.於2008年6月17日查閱.
  6. ^ Chris Quirke(2004年5月1日).NTFS vs. FAT32.於2008年6月17日查閱.
  7. ^ Attachment A: Additional Laptop Security Considerations.Technical Guidance for HIV/AIDS Surveillance Programs.Centers for Disease Control and Prevention, Dept. of Health and Human Services(2004年5月1日).於2008年6月17日查閱.
  8. ^ Inside Windows NT Disk Defragmenting.Microsoft Technet.Microsoft(March 3,2007).於2008年9月17日查閱.
  9. ^ Paul Thurrott(2001年2月1日).NTFS Licensee Reports Microsoft Threat, Apology.Windows IT Pro.於2008年6月17日查閱.
  10. ^ Kozierok, Charles M.(2001年4月17日).Overview and History of NTFS.PCGuide.
  11. ^ Recovering Windows NT After a Boot Failure on an NTFS Drive.Microsoft(2006年11月1日).
  12. ^ Loveall, John(2006年).Storage improvements in Windows Vista and Windows Server 2008(PowerPoint),14-20.Microsoft Corporation.於2007年9月4日查閱.
  13. ^ Sparse Files.MSDN Platform SDK: File Systems.於2005年5月22日查閱.
  14. ^ Sparse FIles and Disk Quotas.Win32 and COM Development: File Systems.於2007年12月5日查閱.
  15. ^ MS Windows NT Workstation 4.0 Resource Guide, "POSIX Compatibility"
  16. ^ John Saville, "What is Native Structured Storage?"
  17. ^ File Compression and Decompression.MSDN Platform SDK: File Systems.於2005年8月18日查閱.
  18. ^ "Best practices for NTFS compression in Windows." Microsoft Knowledge Base. Retrieved on 2005-08-18.
  19. ^ Daily, Sean(1998年1月1日).Optimizing Disks.IDG books.於2007年12月17日查閱.
  20. ^ Single Instance Storage in Windows 2000(PDF).Microsoft Research and Balder Technology Group.
  21. ^ How EFS Works, Microsoft Windows 2000 Resource Kit
  22. ^ Transactional NTFSMSDN.於2007年2月2日查閱.
  23. ^ "ntfsmount wiki page on linux-ntfs.org"
  24. ^ cfsbloggers(2006年7月14日).How restore points and other recovery features in Windows Vista are affected when dual-booting with Windows XP.The Filing Cabinet.於2007年3月21日查閱.
  25. ^ Recovery information
  26. ^ Paragon NTFS for MAC OS X - full read and write access to Windows NTFS partitions under Mac OS X
  27. ^ How to Convert FAT Disks to NTFS.Microsoft Corporation(2001年10月25日).於2007年8月27日查閱.
  28. ^ "Beating the Daylight Savings Time bug and getting correct file modification times" The Code Project
  29. ^ "Microsoft TechNet Resource Kit"
  30. ^ 30.0 30.1 30.2 更精確地說,32767 表示 255個 UTF-16 編碼字。某些特殊的 Unicode 字元可能需要兩個字的空間
  • Bolosky, William J.; Corbin, Scott; Goebel, David; & Douceur, John R. (date). "Single Instance Storage in Windows 2000" (PDF). Microsoft Research & Balder Technology Group, Inc..
  • Custer, Helen(1994).Inside the Windows NT File System.Microsoft Press.ISBN 978-1-55615-660-1. 
  • Nagar, Rajeev(1997).Windows NT File System Internals: A Developer's Guide.O'Reilly.ISBN 978-1-56592-249-5. 

外部連結

  • 文獻:
  • 實現技術:
    • NTFS-3G – an open source read/write NTFS driver for Linux, FreeBSD, Mac OS X, NetBSD, Solaris and Haiku.
    • Linux-NTFS – an open source project to add NTFS support to the Linux kernel (write support is limited, but can be used for simple tasks), and write POSIX-compatible utilities for accessing and manipulating NTFS (ntfsprogs; includes ntfsls, ntfsresize, ntfsclone, etc). Linux NTFS FAQ and howto
    • Captive NTFS – a shim which used the Windows NTFS driver to access NTFS file systems under Linux

Template:Windows Components







Why are we here?
All text is available under the terms of the GNU Free Documentation License
This page is cache of Wikipedia. History