複製鏈接
請複製以下鏈接發送給好友

ntfs

鎖定
NTFS(New Technology File System)是Windows NT內核的系列操作系統支持的、一個特別為網絡和磁盤配額、文件加密等管理安全特性設計的磁盤格式,提供長文件名、數據保護和恢復,能通過目錄和文件許可實現安全性,並支持跨越分區。 [1] 
中文名
新技術文件系統
外文名
New Technology File System
簡    稱
NTFS
作    用
取代了老式的FAT文件系統

ntfs簡介

NTFS文件系統最早出現於1993年的Windows NT操作系統中,它的出現大幅度地提高了微軟原來的FAT文件系統的性能。 [2] 
NTFS是一個日誌文件系統,這意味着除了向磁盤中寫入信息,該文件系統還會為所發生的所有改變保留一份日誌。這一功能讓NTFS文件系統在發生錯誤的時候(比如系統崩潰或電源供應中斷)更容易恢復,也讓這一系統更加強壯。在這些情況下,NTFS能夠很快恢復正常,而且不會丟失任何數據。在很少出錯情況下,微軟表示你需要運行CHKDSK修復程序來對磁盤捲進行維護的概率特別低,其概率不到1%。 [2] 

ntfs功能

NTFS文件系統所具備3個功能:錯誤預警功能、磁盤自我修復功能和日誌功能。 [1] 
錯誤預警功能:在NTFS分區中,如果MFT所在的磁盤扇區恰好出現損壞,NTFS文件系統會比較智能地將MFT換到硬盤的其他扇區,保證了文件系統的正常使用,也就是保證了系統的正常運行。而FAT16和FAT32的FAT則只能固定在分區引導扇區的後面,一旦遇到扇區損壞,那麼整個文件系統就要癱瘓。 [1] 
磁盤自我修復功能:NTFS可以對硬盤上的邏輯錯誤和物理錯誤進行自動偵測和修復。在每次讀寫時,它都會檢查扇區正確與否。當讀取時發現錯誤,NTFS會報告這個錯誤;當向磁盤寫文件時發現錯誤,NTFS會換一個完好位置存儲數據。 [1] 
日誌功能:在NTFS文件系統中,任何操作都可以被看成是一個“事件”。事件日誌一直監督着整個操作,當它在目標地,發現了完整文件,就會標記“已完成”。假如複製中途斷電,事件日誌中就不會記錄“已完成”,NTFS可以在通電後重新完成剛才未完成的事件。 [1] 

ntfs特點

1、安全性
NTFS文件系統能夠輕鬆指定用户訪問某一文件或目錄、操作的權限大小。NTFS能用一個隨機產生的密鑰把一個文件加密,只有文件的所有者和管理員掌握解密的密鑰,其他人即使能夠登錄到系統中,也沒有辦法讀取它。NTFS採用用户授權來操作文件,事實上這是網絡操作系統的基本要求有給定權限的用户才能訪問指定的文件。NTFS還支持加密文件系統(EFS)以阻止未授權的用户訪問文件。 [3] 
2、容錯性
NTFS使用了一種被稱為事務登錄的技術跟蹤對磁盤的修改。因此,NTFS可以在幾秒鐘內恢復錯誤。 [3] 
3、穩定性
NTFS文件系統的文件不易受到病毒和系統崩潰的侵襲。這種抗干擾能力直接源自於Windows NT操作系統的高度安全性能,NTFS文件系統只能被WindowsNT以及以NT為內核的Windows 2000/XP以上系統所識別。即使FAT和NTFS兩種文件系統在一個磁盤中並存時,NTFS採用與FAT不同的方法來定位文件映像,克服了FAT文件系統存在許多閒置扇區空間的缺點。 [3] 
4、向下的可兼容性
NTFS文件系統可以存取FAT文件系統和HPFS文件系統的數據,如果文件被寫入可移動磁盤(特別是軟盤)時,它將自動採用FAT文件系統。 [3] 
5、可靠性
NTFS把重要交易作為一個完整交易來處理,只有整個交易完成之後才算完成,這樣可以避免數據丟失。如向NTFS分區中寫文件時,會在內存中保留文件的一份拷貝,然後檢查向磁盤中所寫的文件是否與內存中的一致。如果兩者不一致,操作系統就把相應的扇區標為壞扇區而不再使用它(簇重映射),然後用內存中保留的文件拷貝重新向磁盤上寫文件。如果在讀文件時出現錯誤,NTFS則返回一個讀錯誤信息,並告知相應的應用程序數據已經丟失。 [3] 
6、大容量
NTFS徹底解決存儲容量限制,最大可支持16EB。(1024B=1KB,1024KB=1MB,1024MB=1GB,1024GB=1TB,1024TB=1PB,1024PB=1EB)。NTFS的簇大小一般從512字節到4KB。 [3] 
7、長文件名
NTFS允許長達255個字符的文件名,突破FAT的8.3標準限制(FAT規定主文件名為8個字符擴展名為3個字符)。NTFS文件系統的最大缺點就是它只能被WindowsNT/2000/XP以上系統、Linux系統所識別。雖然NTFS文件系統可以存取FAT文件系統的文件,但它的文件卻不能被FAT文件系統所存取,當系統崩潰時我們只有用軟盤、光盤或U盤啓動,啓動後他們用的FAT或FAT32文件系統是是無法訪問NTFS文件系統的給數據搶救帶來不便。 [3] 

ntfs系統結構

NTFS和FAT32文件系統在結構上幾乎是完全不同的兩種文件系統,NTFS自身具有很多新的特徵,比如安全性、容錯性、文件壓縮和磁盤配額等,都是相對其他系統特殊的地方。NTFS分區主要由引導扇區、主文件表(Master File Table,MFT)、系統文件和文件存儲區域等4個部分組成。 [4] 
1、NTFS數據存儲結構
在NTFS文件系統中,對文件進行存取都是按照簇分配的,而每個簇都是物理扇區的整數倍,並且簇大小是物理扇區的2的整數次方,但NTFS文件系統裏,簇的大小則是由格式化程序根據卷的大小自動分配。NTFS要使用邏輯簇號(logicalcluster number,簡稱LCN)和虛擬簇號(virtualcluster number,簡稱VCN)來對簇進行定位,同時,通過LCN來對整個卷中的所有簇從頭到尾按照順序進行編號,將卷因子乘以LCN,就可以得到捲上物理字節的偏移量,從而可去頂物理磁盤的詳細地址。VCN則是對特定文件的簇從頭到尾按照順序進行編號,方便引用文件中的數據。在NTFS中,捲上的所有的數據信息都存儲在文件中,這當中包含了引導程序(即用來獲取及定位文件的一種數據結構)以及位圖文件(記錄卷使用情況和大小)。一般來説,不論簇的大小會是多少,文件記錄的大小都將是固定不變的,且為1KB。 [4] 
2、分區引導扇區
在操作系統引導的過程中,分區引導扇區起着很重要的作用,其中存儲着和卷文件相關的結構信息和啓動引導程序等。操作系統在建立文件系統時,生成的BPB參數記錄着NTFS系統中的很多重要信息,包含了每簇扇區數、分區的扇區總數、MFT的起始邏輯簇號、文件系統標識等信息。在NTFS中,分區上的所有數據都是以文件的形式存儲的。 [4] 
3、主文件表MFT
主文件表MFT在NTFS文件系統中處於最核心、最重要的地位,通過MFT可以確定所有文件在磁盤上的詳細存儲位置。主文件表由一系列文件記錄組成,是一個與文件對應的數據庫,卷中的每一個文件都包含着一個文件記錄,其中的第一個文件記錄是基本文件記錄,它主要存儲着其它擴展文件記錄的一些詳細信息。MFT文件記錄數組中的文件記錄在物理上是連續的,並且都是從0開始編號。MFT僅供系統自身構架、組織文件系統使用,被稱作元數據。所有的元文件名字都是以“$”開始,其都是隱藏文件。MFT表中的前16個元數據是最重要的。為了防止數據的丟失,在卷存儲區中,NTFS系統對它們進行了備份。 [4] 
4、NTFS文件屬性
NTFS的文件記錄屬性一般可以分為兩種:即常駐屬性和非常駐屬性。如果屬性值是存儲在文件記錄中,這些屬性即稱作常駐屬性;反之,如果屬性值存儲在文件記錄之外,這些屬性即稱作非常駐屬性。屬性頭的前4個字節是屬性類型,其中包含着描述文件基本信息的屬性(如文件的讀寫特性、文件的創建時間以及修改時間等)、文件名屬性(如文件名及其長度、分配空間的大小、文件實際佔用空間的大小和文件的最後訪問時間等)和用於描述文件內容的數據屬性等內容。 [4] 

ntfs系統優點

NTFS所以被廣泛應用,除了因為Microsoft公司本身在操作系統市場的絕對優勢,其本身也具有諸多優點: [5] 
1、NTFS中的所有文件是以key-value的形式存儲和組織的,能夠迅速地通過文件屬性key來尋找和定位任意文件的value值,提高了操作系統對文件數據的處理效率。 [5] 
2、為系統文件或重要文件建立安全描述符,凡是通過操作系統或API對文件進行修改和破壞的行為,都受到操作系統的保護。近年來出現的繞過操作系統或者直接訪問硬件磁盤閃存等行為,暫時不能通過文件系統進行保護。 [5] 
3、NTFS不綁定某個硬件磁盤扇區,當發現磁盤受到破壞或無法讀取數據時,將通過操作系統相關機制對扇區或捲進行復位。文件系統的這種獨立性,使得NTFS本身具有更高的安全性。 [5] 
4、具有可擴容的卷空間。操作系統將所有數據按照文件的形式存儲和統一管理,目的之一是實現連續數據的非連續存儲。在不對信息進行分類區分而是統一管理下,卷的狀態和管理更加容易進行管理。 [5] 

ntfsNTFS & FAT

ntfs概念

FAT是文件分配表的英文縮寫。自1981年首次問世以來,FAT已經成為一個歷經滄桑的計算機術語。由於時代原因,包括Windows NT、Window 98、Mac OS以及多種UNIX版本在內的大多數操作系統均對FAT提供支持。FAT文件系統限制使用8.3格式的文件命名規範,在一個文件名中,句點之前部分的最大長度為8個字符,句點之後部分的最大長度為3個字符。FAT文件系統中的文件名必須以字母或數字開頭,並且不得包含空格。此外,FAT文件名不區分大小寫字母。 [6] 
為彌補FAT在功能上的缺陷,Microsoft創建了一種稱作NTFS的新型文件系統技術。NTFS所提供的新增特性包括容錯性和增強安全性等等。 [6] 

ntfs兼容性

在確定某一分區所需使用的文件系統類型前,必須首先考慮兼容性問題。如果多種操作系統都將對該分區進行訪問,那麼必須使用一種所有操作系統均可讀取的文件系統。通常情況下,具備普遍兼容性的FAT文件系統可以勝任這種要求。相比之下,只有Windows NT能夠支持NTFS分區。 [6] 
這種限制條件僅適用於本地計算機。舉例來説,如果一台計算機上同時安裝了Windows NT與Windows 98兩種操作系統,並且這兩種操作系統都需要對同一個分區進行訪問,那麼必須通過FAT方式對該分區進行格式化。與此相反,如果這台計算機上只安裝了Windows NT一種操作系統,則可以將該分區格式化為NTFS,此時,運行其它操作系統的計算機仍可通過網絡方式對該分區進行訪問。 [6] 

ntfs卷容量

另一項決定因素為分區物理容量。FAT最大支持2GB分區容量。如果分區容量超過2GB,必須通過NTFS方式對其進行格式化,或者將其拆分為多個容量較小的分區。需要注意的是,NTFS本身所需耗費的資源多於FAT。如果所使用的分區容量小於200MB,應當選擇FAT文件系統以避免NTFS文件系統自身佔用過多磁盤空間,NTFS分區的最大容量為16EB。 [6] 

ntfs容錯性

NTFS還可在不顯示錯誤消息的情況下自動修復硬盤錯誤。當Windows NT向NTFS分區中寫入文件時,它將在內存中為該文件保留一個備份。當寫入操作完成後,Windows NT將再次讀取該文件以驗證其是否與內存中所存儲的備份相匹配。如果兩份拷貝內容不一致,Windows NT將把硬盤上的相應區域標記為受損並不再使用這一區域。此後,它將使用存儲在內存中的文件拷貝在硬盤的其它位置上重新寫入文件。 [6] 
FAT文件系統未提供任何安全保護特性。FAT所採取的保護措施便是同時維護文件分配表的兩份拷貝,如果其中一份拷貝遭到破壞,它將自動使用另一份拷貝對其進行修復。然而,這一功能必須通過諸如Scandisk之類的實用工具方可實現。 [6] 

ntfs安全性

NTFS擁有一套內建安全機制,可以為目錄或單個文件設置不同權限。這些權限可以在本地及遠程對文件與目錄加以保護。如果正在使用FAT文件系統,那麼安全特性將通過共享權限加以實現。共享權限將通過網絡對文件予以保護,該特性無法提供本地保護措施。假設擁有一台包含幾百名用户的服務器,而每名用户又擁有自己的目錄,為對其進行管理,可能需要同時維護數以百計的共享權限。這些共享權限可能相互重疊,從而導致更大的複雜性。 [6] 

ntfs系統分區

一種較為理想的解決方案是將系統分區格式化為FAT文件系統。如果對系統安全性的要求不高,則為系統分區指定較小的分區容量並且不在該分區上存放除Windows系統文件以外的任何內容。除非未經授權的用户能夠通過物理方式對計算機進行訪問,否則,FAT文件系統在安全性方面還是完全值得信賴的。 [6] 

ntfsMFT主控文件表

除了儲存用户的文件和目錄數據外,NTFS將一些用於磁盤管理的數據也儲存在文件中,當初始化一個NTFS磁盤時,NTFS將創建元數據文件。 [1] 
(一)MFT
NTFS NTFS
主控文件表MFT映射了磁盤上所有文件和目錄,包括NTFS的元數據文件。MFT以記錄為單位進行劃分,其本身也是一個由NTFS用MFT中的記錄映射的文件。這樣的結構使MFT很容易擴展,使NTFS能很有效率地追蹤現存的元數據數量,來決定它們所佔用的空間。NTFS在內部使用MFT中的記錄來標識文件和目錄,這些記錄描述了這些元數據的開始位置信息。因為MFT也是文件,當MFT變大而其它的文件使用的簇正好在它原來的結束處之後,MFT必須在磁盤中找另一處未使用的空間,這樣就導致MFT文件所映射的簇的順序不連續了。為了避免MFT碎裂,NTFS在MFT周圍保留一定範圍的簇不分配給其它的文件和目錄,這樣,在MFT需要增長時,能增加找到連續簇的機會,也能儘量少的使MFT靠近其它的數據。因此,在磁盤剩餘容量較小時,MFT變得破碎的危險將會增加。 [1] 
(二)MFT中的記錄
NTFS使用屬性儲存所有的文件和目錄信息。屬性包括:屬性表頭和屬性數據。表頭儲存屬性的類型、名字和標誌,記錄着屬性數據的位置。MFT中的記錄由一個包含關於記錄的基本信息的小表頭和緊跟着的一些屬性組成,這些屬性用於描述記錄所對應的文件或目錄的數據或特性。NTFS將在MFT記錄裏面直接儲存屬性數據。存儲在MFT記錄中的屬性稱為常駐屬性,其它的稱為非常駐屬性。只有當記錄表頭、屬性表頭、屬性數據都能放入一個記錄時,屬性才能是一個常駐屬性。因此,1KB(通常的MFT記錄大小)是NTFS磁盤上的屬性數據長度的上限。如果屬性的數據是常駐的,屬性表頭將指向在MFT記錄中的數據的位置。由於屬性和大量的數據可能跨越多個MFT記錄,而運行要覆蓋文件的不同的部分,而運行由多個運行項組成,一個運行項包含一個虛擬簇號(VCN),它是屬性數據內部簇的順序編號;一個邏輯簇號(LCN),它是數據儲存在磁盤上的位置;以及數據在磁盤上所佔用空間的連續簇的數量。如果一個文件有太多屬性要填入MFT記錄中,NTFS將分配附加的記錄並在基本記錄中儲存一個屬性-列表屬性。屬性列表指向在附加記錄中的屬性的位置,列表的每一項對應着一個屬性。 [1] 

ntfs磁盤管理:刪除文件

當文件被徹底刪除後,系統會將其主文件表MFT記錄收回,並加上刪除標記,同時將該文件所佔用的數據區也一併收回,並把$Bitmap元文件中簇的表示信息使用清空,在對應位置上設為0。對刪除文件的文件記錄和數據區所佔用的所有空間都可再分配給其他的文件使用。NTFS系統中的文件在刪除後,其原先的數據空間如果沒有被新的數據所覆蓋的話,只要FILE記錄還存在,則將很容易找到文件數據的詳細存儲位置,並能將這些數據準確的恢復出來。如果刪除的文件包含在其他文件夾中,那麼文件被刪除後,該文件夾也要將該文件的目錄項刪除。文件刪除的後遺留的痕跡也可以從主文件表MFT記錄中獲取到。操作系統將文件刪除後,那麼文件原先佔用的文件號可能很快被再次分配,但其數據區中的數據可能要很長時間才被重新分配。 [4] 

ntfs數據恢復

對於數據的恢復,可以根據不同的刪除原理進行數據的恢復:
1、文件刪除後的恢復
根據分析可知,NTFS文件系統中,在文件被徹底刪除之後,系統會將此文件記錄中的狀態字節由文件使用標誌“01”變為文件刪除標誌“00”,而其文件名稱、文件的大小以及Run List等重要屬性都不會發生變化,而且數據區中的內容也不會發生變化,因此可以將文件數據恢復。但是,如果該文件不是使用連續的簇號來存儲文件數據,或者文件的數據區已被新的數據所佔用,即原數據區被覆蓋,那麼,文件就很難被恢復出來。如果數據是使用連續的簇號存儲,且數據區中的數據沒有被新數據覆蓋,那麼,就可以使用WinHex等常用恢復軟件進行恢復。只需要選擇數據區的全部內容並進行復制,然後將該文件的數據區中所有十六進制值保存為一個新文件,即可實現文件的恢復。 [4] 
2、文件格式化後的恢復
文件的格式化其實是給分區重新建立文件系統,格式化後,分析分區的MFT文件可發現,文件的記錄和內容也是完好存在的,其數據區也沒有改變。所以,通過RunList就可以找到這些數據,並有可能將其恢復。但是,如果文件記錄也被破壞,文件就很難再被恢復出來。 [4] 
3、文件系統損壞的恢復
當某個分區的文件系統被破壞後,我們是無法打開此分區的,同時系統會提示我們分區沒有格式化,需要重新格式化。此時,可以通過WinHex等軟件打開分區的DBR扇區(扇區中的數據被全部清零),只要能夠找到DBR備份就可以將數據恢復出來。跳轉到硬盤的最後一個分區後,找到數據結束標誌“55AA”,DBR的備份就存儲在分區的最後一個扇區中,將此備份複製到DBR扇區後就可以打開分區了。 [4] 
參考資料