ntfs(NTFS檔案系統)

ntfs

NTFS檔案系統一般指本詞條

NTFS (New Technology File System),是 WindowsNT 環境的檔案系統。新技術檔案系統是Windows NT家族(如,Windows 2000、Windows XPWindows VistaWindows 7windows 8.1)等的限制級專用的檔案系統(作業系統所在的盤符的檔案系統必須格式化為NTFS的檔案系統,4096簇環境下)。NTFS取代了老式的FAT檔案系統。

NTFS對FATHPFS作了若干改進,例如,支持元數據,並且使用了高級數據結構,以便於改善性能、可靠性和磁碟空間利用率,並提供了若干附加擴展功能。

該檔案系統的詳細定義屬於商業秘密 ,微軟已經將其註冊為智慧財產權產品。

基本介紹

  • 外文名:New Technology File System
  • 簡稱:ntfs
  • 屬於:檔案系統
  • 作用:取代了老式的FAT檔案系統
目標,詳細說明,歷史,版本,特點,支持大小,檔案系統,資料夾壓縮,磁碟空間的有效管理,更好的安全性,更多的功能,系統優點,注意事項,NTFS檔案系統詳解,NTFS檔案系統結構總覽,NTFS檔案系統引導扇區:,

目標

  1. 可靠性通過可恢復能力(事件跟蹤)和熱定位的容錯特徵實現;
  2. 增加功能性的一個平台;
  3. 對POSIX需求的支持;
  4. 消除FAT和HPFS檔案系統中的限制。
轉換畫面轉換畫面

詳細說明

NTFS 提供長檔案名稱、數據保護和恢復,並通過目錄和檔案許可實現安全性。NTFS 支持大硬碟和在多個硬碟上存儲檔案(稱為卷)。例如,一個大公司的資料庫可能大得必須跨越不同的硬碟。NTFS 提供內置安全性特徵,它控制檔案的隸屬關係和訪問。從DOS或其他作業系統上不能直接訪問 NTFS 分區上的檔案。如果要在DOS下讀寫NTFS分區檔案的話可以藉助第三方軟體;現如今,Linux系統上已可以使用NTFS-3G進行對 NTFS 分區的完美讀寫,不必擔心數據丟失。
Win 2000採用了更新版本的NTFS檔案系統NTFS 5.0,它的推出使得用戶不但可以像Win 9X那樣方便快捷地操作和管理計算機,同時也可享受到NTFS所帶來的系統安全性。 NTFS 允許檔案名稱的長度可達 256 個字元。雖然 DOS用戶不能訪問 NTFS 分區,但是 NTFS檔案可以拷貝到 DOS 分區。每個 NTFS檔案包含一個可被 DOS 檔案名稱格式認可的 DOS 可讀檔案名稱。這個檔案名稱是 NTFS 從長檔案名稱的開始字元中產生的。

歷史

20 世紀 90 年代早期,Microsoft 和 IBM 組建了一個聯合計畫,目標是創建一個下一代的作業系統。該項目的結果是誕生了 OS/2,但由於 Microsoft 和 IBM 在很多重要問題上不能達成共識而最後分裂, OS/2 至今仍屬於 IBM。Microsoft 開始研究 Windows NT。OS/2 的檔案系統HPFS 包含了若干重要功能,而當 Microsoft 開始創建他們自己的新作業系統時,他們的 NTFS 從中借用汲取了很多方面。也許是因為它們有共同的祖先,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 年初),Windows Server 2008 R2(有時稱作“NTFS 6.1”)以及 Windows 7。
V1.0 和 V1.1 以及所有以後版本不兼容,也就是說,使用 NT 3.5x 寫入的卷無法被 NT 3.1 讀取,除非使用 NT 3.5x 光碟更新 NT 3.1,並添加對 FAT 系統的長檔案名稱支持。V1.2 支持壓縮檔案、命名流、基於 ACL(訪問控制列表)的安全性等功能。
V3.0 支持磁碟限額、加密、稀疏檔案、重解析點,更新串列數(USN)日誌、$Extend資料夾以及其中的檔案,並改進了安全描述符,以便於使用相同安全設定的多個檔案共享一個安全描述符。
V3.1 使用冗餘MFT 記錄數(用於恢復受損的 MFT檔案)擴展了主檔案表(MFT)項。
Windows Vista提供了事務 NTFS、NTFS符號連結、收縮卷以及自我恢復功能,但這些附加功能由作業系統提供,而非檔案系統自身的功能。

特點

支持大小

NTFS可以支持的分區(如果採用動態磁碟則稱為卷)大小可以達到2TB。而Windows2000中的FAT32支持分區的大小最大為32GB。

檔案系統

NTFS是一個可恢復的檔案系統。在NTFS分區上用戶很少需要運行磁碟修復程式。NTFS通過使用標準的事務處理日誌和恢復技術來保證分區的一致性。發生系統失敗事件時,NTFS使用日誌檔案和檢查點信息自動恢復檔案系統的一致性。

資料夾壓縮

NTFS支持對分區、資料夾和檔案的壓縮。任何基於Windows的應用程式對NTFS分區上的壓縮檔案進行讀寫時不需要事先由其他程式進行解壓縮,當對檔案進行讀取時,檔案將自動進行解壓縮;檔案關閉或保存時會自動對檔案進行壓縮。

磁碟空間的有效管理

·NTFS採用了更小的,可以更有效率地管理磁碟空間。在Win 2000的FAT32檔案系統的情況下,分區大小在2GB~8GB時簇的大小為4KB;分區大小在8GB~16GB時簇的大小為8KB;分區大小在16GB~32GB時,簇的大小則達到了16KB。而Win 2000的NTFS檔案系統,當分區的大小在2GB以下時,簇的大小都比相應的FAT32簇小;當分區的大小在2GB以上時(2GB~2TB),簇的大小都為4KB。相比之下,NTFS可以比FAT32更有效地管理磁碟空間,最大限度地避免了磁碟空間的浪費。

更好的安全性

·在NTFS分區上,可以為共享資源、資料夾以及檔案設定訪問許可許可權。許可的設定包括兩方面的內容:一是允許哪些組或用戶對資料夾、檔案和共享資源進行訪問;二是獲得訪問許可的組或用戶可以進行什麼級別的訪問。訪問許可許可權的設定不但適用於本地計算機的用戶,同樣也套用於通過網路的已分享檔案夾對檔案進行訪問的網路用戶。與FAT32檔案系統下對資料夾或檔案進行訪問相比,安全性要高得多。另外,在採用NTFS格式的Win 2000中,套用審核策略可以對資料夾、檔案以及活動目錄對象進行審核,審核結果記錄在安全日誌中,通過安全日誌就可以查看哪些組或用戶對資料夾、檔案或活動目錄對象進行了什麼級別的操作,從而發現系統可能面臨的非法訪問,通過採取相應的措施,將這種安全隱患減到最低。這些在FAT32檔案系統下,是不能實現的。

更多的功能

·在Win 2000的NTFS檔案系統下可以進行磁碟配額管理。磁碟配額就是管理員可以為用戶所能使用的磁碟空間進行配額限制,每一用戶只能使用最大配額範圍內的磁碟空間。設定磁碟配額後,可以對每一個用戶的磁碟使用情況進行跟蹤和控制,通過監測可以標識出超過配額報警閾值和配額限制的用戶,從而採取相應的措施。磁碟配額管理功能的提供,使得管理員可以方便合理地為用戶分配存儲資源,避免由於磁碟空間使用的失控可能造成的系統崩潰,提高了系統的安全性。
NTFS使用一個“變更”日誌來跟蹤記錄檔案所發生的變更。
還有諸如加密檔案數據等等,和系統服務相關的不少東西。

系統優點

(1)更安全的檔案保障,提供檔案加密,能夠大大提高信息的安全性。
(2)更好的磁碟壓縮功能。
(3)支持最大達2TB的大硬碟,並且隨著磁碟容量的增大,NTFS的性能不像FAT那樣隨之降低。
(4)可以賦予單個檔案資料夾許可權。對同一個檔案或者資料夾為不同用戶可以指定不同的許可權。在NTFS檔案系統中,可以為單個用戶設定許可權
(5)NTFS檔案系統中設計的恢復能力無需用戶在NTFS卷中運行磁碟修復程式。在系統崩潰事件中,NTFS檔案系統使用日誌檔案和複查點信息自動恢復檔案系統的一致性。
(6)NTFS資料夾的B-Tree結構使得用戶在訪問較大資料夾中的檔案時,速度甚至比訪問卷中較小的資料夾中的檔案還快。
(7)可以在NTFS卷中壓縮單個檔案和資料夾。NTFS系統的壓縮機制可以讓用戶直接讀寫壓縮檔案,而不需要使用解壓軟體將這些檔案展開。
(8)支持活動目錄和域。此特性可以幫助用戶方便靈活地查看和控制網路資源。
(9)支持稀疏檔案稀疏檔案應用程式生成的一種特殊檔案,檔案尺寸非常大,但實際上只需要很少的磁碟空間,也就是說,NTFS只需要為這種檔案實際寫入的數據分配磁碟存儲空間。
(10)支持磁碟配額。磁碟配額可以管理和控制每個用戶所能使用的最大磁碟空間。

注意事項

NTFS是微軟Windows NT核心的系列作業系統支持的、一個特別為網路和磁碟配額、檔案加密等管理安全特性設計的磁碟格式。除了在區域網路安裝了NT系列的用戶們使用NTFS外,隨著NT核心的桌面系統Windows2000和XP的普及,很多個人用戶也開始把自己的分區格式化為NTFS。
在一般情況下,NTFS的格式不能被Windows9X識別,而且在安裝、操作方面也有差異,所以個人用戶在使用這種磁碟格式的時候,必須留意下面的注意事項:
一、NT核心的系統應始終使用NTFS 嗎?
NTFS是微軟推薦在NT系列上使用的檔案系統,但是,會有一些特殊的原因使用其他檔案系統。如果計畫用其他作業系統(包括MS-DOS)訪問檔案,則應把引導的分區,即C糟選擇格式為 FAT(包括FAT32)檔案系統。如果使用的是NTFS檔案系統並要與Windows NT進行雙重引導,那么在繼續Windows 2000或XP的安裝之前,必須要為Windows NT安裝SP4或更高版本的補丁
二、轉化NTFS和其他分區格式的技巧
一台機器用PQ7把一個分區由NTFS轉換成FAT32格式,完成後發現該盤中的中文名的資料夾全部變成問號,打不開了。此時想轉回來時發現提示磁碟錯誤,用Windows的磁碟掃描和DOS的CHKDSK檢查後仍無法轉換,裡面有其下載的幾百M的檔案,已經搞的面目全非了。
其實,如果NTFS的分區容量很大且內有大量的數據存在的話,用直接轉換的方式不僅緩慢,而且是很危險的——因為在每一個步驟里,轉換的工具程式都要先讀取扇區信息、拷貝到臨時目錄、轉化格式再從臨時目錄讀數據重新寫入轉換好的空間,再校驗……這樣的操作其實和低級格式化硬碟或是刷新主機板的BIOS差不多危險,一旦發生掉電或是瞬間的數據量過大傳輸溢出緩衝區導致的當機,重新開機後可能就會丟失分區的所有信息,或是破壞引導區數據甚至是損壞硬碟。
如果硬碟其他分區有足夠的空間,用拷貝後刪除檔案再轉化的方法,會事半功倍。具體的操作就是先在其他分區建立一個目錄,然後轉到你的NTFS分區,選定全部檔案,用複製貼上的方法進行轉移數據。然後把NTFS分區的數據清空,再進行轉化格式就快很多,也安全得多了;從FAT的格式轉換到NTFS也是一樣道理。這種拷貝,比直接轉換分區格式讀讀寫寫、又校驗數據的那種繁瑣過程快很多,可以在轉換完成後,把數據拷貝回該分區。
另外,建議在清空數據後,利用GHOST鏡像NTFS或FAT格式的空白分區,得到一個備份檔案,以後如果再要轉換分區格式利用它來進行就更快。
三、虛擬記憶體(頁面檔案)與NTFS的卷
很多人裝了雙硬碟系統甚至是簡單的RAID磁碟陣列,使用這種結構的系統同時是需要NTFS支持卷功能的,此時,應該儘量避免頁面檔案和系統檔案在同一分區上,也不要在同一物理磁碟驅動器的不同分區中放置多個頁面檔案。特別注意避免將頁面檔案放入容錯驅動器,例如鏡像卷或 RAID-5 卷,因為頁面檔案不需要容錯,而且一些容錯系統將數據寫到多個位置,會導致非常緩慢的數據寫操作。
四、虛擬機或是磁碟壓縮不適宜使用NTFS
使用虛擬機時,在NTFS分區引導的機器上使用光碟引導後,在裝作業系統的時候,將會出現以下提示:
Please wait while Setup initializes.
Scanning system registry...
Cannot create a temporary directory.
If you have HPFS or NTFS installed on your hard drive, you will need to create an MS-DOS boot partition to set up Windows.
因為虛擬機出於兼容的考慮,只內置了最常用的硬體和軟體支持,對NTFS格式的支持還不是很好。你使用Windows9X加補丁的方式來讀寫NTFS分區的話,也可能會導致某些長檔案名稱或是中文名的檔案結構被破壞;在使用GHOST備份和恢復的時候也可能會出現莫名其妙的錯誤。所以,上NTFS還是用NT核心的系列視窗系統好。
另外,注意壓縮過的分區不能轉化為NTFS。其實壓縮磁碟分區變相增大容量是以系統速度的極大犧牲為代價的;而且還會給以後的系統維護、轉換分區格式、升級作業系統等等帶來很大麻煩。除非是完全出於備份數據的考慮,其他的套用建議不要使用Windows的分區磁碟壓縮功能。
NTFS數據恢復
NTFS利用B-Tree檔案管理方法來跟蹤檔案在磁碟上的位置。這種技術比在FAT檔案系統中使用的連結表技術具備更多的優越性。檔案名是順序存放的因而查找速度更快。B-tree數據結構使查找一個條目所需的磁碟訪問次數最少。 那么,檔案是怎么樣被刪除了的,在NTFS檔案系統檔案的刪除原理又是怎么的呢。當在NTFS卷中刪除一個檔案時,系統至少在三個地方做了改變:
(1)該檔案MFT頭偏移16H處的一個位元組,該位元組為0表示檔案被刪除,為1表示該檔案是正被使用的檔案,為2表示其是一個目錄,為03的時候表示其為刪除目錄;
(2)其父資料夾的INDEX_ROOT屬性(90H屬性)或者INDEX_ALLOCATION(A0H屬性);
(3)在點陣圖($Bitmap)元數據檔案中把該檔案所占用的簇對應的位置置0,這樣好給其他檔案騰出空間。
既然知道了檔案的刪除原理,那么我們對檔案的恢復就容易了許多。這裡我們從刪除原理著手,分幾步將數據進行恢復:
第一步:由於檔案是通過主檔案表MFT來確定其在磁碟上的存儲位置的,因此我們首先要找到MFT。
第二步:找到MFT後,通過分析MFT中的檔案記錄信息,(對於大型檔案還可能有多個記錄與之相對應),其中第一個檔案記錄稱為基本檔案記錄,而當中存儲有其他擴展檔案記錄的一些信息。
第三步:通過檔案記錄的INDEX_ROOT索引根、INDEX_ALLOCATION索引分配以及點陣圖Bitmap對被刪檔案加以確認和定位。找到該檔案在數據區中的存儲位置。
第四步:恢復該檔案
需要注意的是,在檔案被刪除以後,雖然磁碟中被刪檔案的相關屬性發生了改變。但是在我們對其進行數據恢復時,我們僅僅是將其相關信息複製到了記憶體,並將相關信息做了修改。也就是說,對於為了修複數據而做的修改,其實並沒有寫回到原檔案屬性上。這就有效的避免了被訪檔案的再次破壞。
在主檔案表中,目錄的索引根屬性包含一些檔案名稱,它們是到達B-Tree的第二層的索引。在這個索引根屬性中的每一個檔案名都包含了個指向索引緩衝區的指針。這個索引緩衝區中包含有一些檔案名,它們位於索引根屬性中的檔案的名字之前。通過這種關係,我們可以使它們排在索引緩衝區中的那個檔案之前。圖4-3 所示,利用這些索引緩衝區,NTFS可以進行折半查找,從而獲得更快的檔案查找速度。

NTFS檔案系統詳解

NTFS檔案系統結構總覽

當用戶將硬碟的一個分區格式化成NTFS分區時,就建立了一個NTFS檔案系統結構。NTFS檔案系統與FAT檔案系統一樣,也是用簇為基本單位對磁碟空間和檔案存儲進行管理的。一個檔案總是占有若干個簇,即使在最後一個簇沒有完全放滿的情況下,也是占用了整個簇的空間,這也是造成磁碟空間浪費的主要原因。檔案系統通過簇來管理磁碟管理,並不需要知道磁碟扇區的大小,這樣就使NTFS保持了與磁碟扇區大小的獨立性,從而使不同大小的磁碟選擇合適的簇。
NTFS分區也被稱為NTFS卷,卷上簇的大小,又稱為卷因子,其大小是用戶在創建NTFS卷時確定的。和FAT檔案系統一樣,卷因子的大小和檔案系統的性能有著非常直接的關係。當一樣簇占用的空間太小時,會出現太多的磁碟碎片,這樣的空間和檔案訪問時間上會造成浪費;而相反的當一個簇占用的空間太大時,直接造成了磁碟空間的浪費。因此,最大限度地最佳化系統對檔案的訪問速度和最大限度地減少磁碟空間的浪費是確定簇的大小的主要因素。簇的大小一定是扇區大小的整數倍,通常是2(n為整數)。
NTFS檔案系統使用了邏輯簇號(LCN)和虛擬簇號(VCN)對卷進行管理。其中LCN是對卷的第一個簇到最後一個簇進行編號,只要知道LCN號和簇的大小以及NTFS卷在物理磁碟中的起始扇區就可以對簇進行定位,而這些信息在NTFS卷的引導扇區中可以找到,在系統底層也是用這種方法對檔案的簇進行定位的。找到簇在磁碟中的物理位置的計算公式是:
每簇扇區數*簇號+卷的隱含扇區數(卷之前的扇區總數)=簇的起始絕對扇區號
而虛擬簇號則是將特定檔案的簇從頭到尾進行編號,這樣做的原因是方便系統對檔案中的數據進行引用,VCN並不要求在物理上是連續的,要確定VCN的磁碟上的定位需先將其轉換為LCN。[1]
NTFS檔案系統的主檔案表中還記錄了一些非常重要的系統數據,這些數據被稱為元數據檔案,簡稱為“元檔案”,其中包括了用於檔案定位和恢複數據結構、引導程式數據及整個卷的分配點陣圖等信息。NTFS檔案系統將這些數據都當做檔案進行管理,這些檔案用戶是不能訪問的,它們的檔案名稱的第一個字元都是“$”,表示該檔案是隱藏的。在NTFS檔案系統中這樣的檔案主要有16個,包括MFT本身($MFT)、MFT鏡像、日誌檔案、卷檔案、屬性定義表、根目錄、點陣圖檔案、引導檔案、壞簇檔案、安全檔案、大寫檔案、擴展元數據檔案、重解析點檔案、變更日誌檔案、配額管理檔案、對象ID檔案等,這16個元數據檔案總是占據著MFT的前16項紀錄,在16項以後就是用戶建立的檔案和資料夾的記錄了。
每個檔案記錄在主檔案表中占據的磁碟空間一般為1KB,也就是兩個扇區,NTFS檔案系統分配給主檔案表的區域大約占據了磁碟空間的12.5%,剩餘的磁碟空間用來存放其他元檔案和用戶的檔案。
$MFT中前16個檔案記錄總是元檔案的記錄,並且這16個檔案記錄的順序是固定的,下面對這16個記錄簡單做一個介紹:
第1個記錄就是$MFT自身的記錄,也就是說$MFT首先對自己進行管理。
第2個記錄是$MFTMirr的記錄,也就是$MFT前4個檔案記錄的鏡像。
第3個記錄是日誌檔案($LogFile)的記錄,該檔案是NTFS為實現可恢復性和安全性而設計的。當系統運行時,NTFS就會在日誌檔案中記錄所有影響NTFS卷結構的操作,包括檔案的創建和改變目錄結構的命令,從而可在系統失敗時能夠恢復NTFS卷。
第4個記錄是卷檔案($Volume)的記錄,它包含卷名、NTFS的版本和一個標明該磁碟是否損壞的標誌位,NTFS檔案系統以此決定是否需要調用Chkdsk程式來進行修復。
第5個記錄是屬性定義表($AttrDe,attribute definition table)的記錄,其中存放著卷所支持的所有檔案屬性,並指出它們是否可以被索引和恢復等。
第6個記錄是根目錄($ROOT)的記錄,其中保存著該卷根目錄下的所有檔案和目錄的索引。在訪問一個檔案後,NTFS就保留該檔案的MFT引用,第二次就能夠直接訪問該檔案。
第7個記錄是點陣圖檔案($Bitmap)的記錄,NTFS卷的簇使用情況都保存在這個點陣圖檔案中,其中每一位(bit)代表卷中的一簇,標識該簇的空間還是已分配。由於該檔案可以很容易被擴大,所以,NTFS的卷可以很方便地動態擴大,而FAT格式的檔案系統由於涉及FAT表的變化,所以不能隨意對分區大小進行調整。
第8個記錄是引導檔案($Boot)的記錄,該檔案中存放著作業系統的引導程式代碼。該檔案必須位於特定的磁碟位置才能夠正確地引導系統,一般都是位於卷的最前面。
第9個記錄是壞簇檔案($BadClus)的記錄,它記錄著該卷中所有損壞的簇號,防止系統對其進行分配使用。
第10個記錄是安全檔案($Secure)的記錄,它存儲著整個卷的安全描述符資料庫。NTFS檔案和目錄都有各自的安全描述符,為節省空間,NTFS將檔案和目錄的相同描述符存放在此公共檔案中。
第11個記錄為大寫檔案($UpCase,upper case file)的記錄,該檔案包含一個大小寫字元轉換表。
第12個記錄是擴展元數據目錄($Extended metadata directory)的記錄。
第13個記錄是重解析點檔案($Extend\$Reparse)的記錄。
第14個記錄是變更日誌檔案($Extend\UsnJrnl)的記錄。
第15個記錄是配額管理檔案($Extend\Quota)的記錄。
第16個記錄是對象ID檔案($Extend\ObjId)的記錄。
第17—23記錄是系統保留的記錄,暫時不用,用於將來擴展。
第24個記錄開始存放用戶檔案的記錄。

NTFS檔案系統引導扇區:

NTFS檔案系統的引導扇區是$Boot的第一個扇區,它的結構與FAT檔案系統的DBR類似,所以習慣上也稱該扇區為DBR扇區。DBR扇區在作業系統的引導過程起著非常重要的作用,如果這個扇區遭到破壞,系統將不能正常啟動。
NTFS檔案系統的DBR扇區與FAT檔案系統的結構一樣。也包括跳轉指令、OEM代號、BPB參數、引導程式和結束標誌。
跳轉指令
跳轉指令本身占用2位元組,它將程式執行流程跳轉到引導程式處,
OEM代號
這部分占8位元組,其內容由創建該檔案系統的OEM廠商具體安排,
BPB參數
BPB是BIOS Parameter Block的縮寫,其含義為BIOS參數塊。BPB從DBR的第12個位元組開始,到偏移53H結束,占用73位元組,記錄了有關檔案系統的重要信息。

相關詞條

熱門詞條

聯絡我們