當(dāng)前位置:首頁 > 百科知識 > 電子工程 > 正文

NTFS

  NTFS (New Technology File System),是 WindowsNT 環(huán)境的文件系統(tǒng)。新技術(shù)文件系統(tǒng)是Windows NT家族(如,Windows 2000、Windows XP、Windows Vista、Windows 7和 windows 8.1)等的限制級專用的文件系統(tǒng)(操作系統(tǒng)所在的盤符的文件系統(tǒng)必須格式化為NTFS的文件系統(tǒng),4096簇環(huán)境下)。NTFS取代了老式的FAT文件系統(tǒng)。   NTFS對FAT和HPFS作了若干改進(jìn),例如,支持元數(shù)據(jù),并且使用了高級數(shù)據(jù)結(jié)構(gòu),以便于改善性能、可靠性和磁盤空間利用率,并提供了若干附加擴(kuò)展功能。   該文件系統(tǒng)的詳細(xì)定義屬于商業(yè)秘密 ,微軟已經(jīng)將其注冊為知識產(chǎn)權(quán)產(chǎn)品。

目標(biāo)

  一、可靠性通過可恢復(fù)能力(事件跟蹤)和熱定位的容錯(cuò)特征實(shí)現(xiàn);

  二、增加功能性的一個(gè)平臺;

  三、對POSIX需求的支持;

  四、消除FAT和HPFS文件系統(tǒng)中的限制。

詳細(xì)說明

  NTFS 提供長文件名、數(shù)據(jù)保護(hù)和恢復(fù),并通過目錄和文件許可實(shí)現(xiàn)安全性。NTFS 支持大硬盤和在多個(gè)硬盤上存儲文件(稱為卷)。例如,一個(gè)大公司的數(shù)據(jù)庫可能大得必須跨越不同的硬盤。NTFS 提供內(nèi)置安全性特征,它控制文件的隸屬關(guān)系和訪問。從DOS或其他操作系統(tǒng)上不能直接訪問 NTFS 分區(qū)上的文件。如果要在DOS下讀寫NTFS分區(qū)文件的話可以借助第三方軟件;現(xiàn)如今,Linux系統(tǒng)上已可以使用NTFS-3G進(jìn)行對 NTFS 分區(qū)的完美讀寫,不必?fù)?dān)心數(shù)據(jù)丟失。

  Win 2000采用了更新版本的NTFS文件系統(tǒng)NTFS 5.0,它的推出使得用戶不但可以像Win 9X那樣方便快捷地操作和管理計(jì)算機(jī),同時(shí)也可享受到NTFS所帶來的系統(tǒng)安全性。 NTFS 允許文件名的長度可達(dá) 256 個(gè)字符。雖然 DOS用戶不能訪問 NTFS 分區(qū),但是 NTFS文件可以拷貝到 DOS 分區(qū)。每個(gè) NTFS文件包含一個(gè)可被 DOS 文件名格式認(rèn)可的 DOS 可讀文件名。這個(gè)文件名是 NTFS 從長文件名的開始字符中產(chǎn)生的。

歷史

  20 世紀(jì) 90 年代早期,Microsoft 和 IBM 組建了一個(gè)聯(lián)合計(jì)劃,目標(biāo)是創(chuàng)建一個(gè)下一代的操作系統(tǒng)。該項(xiàng)目的結(jié)果是誕生了 OS/2,但由于 Microsoft 和 IBM 在很多重要問題上不能達(dá)成共識而最后分裂, OS/2 至今仍屬于 IBM。Microsoft 開始研究 Windows NT。OS/2 的文件系統(tǒng)HPFS 包含了若干重要功能,而當(dāng) Microsoft 開始創(chuàng)建他們自己的新操作系統(tǒng)時(shí),他們的 NTFS 從中借用汲取了很多方面。也許是因?yàn)樗鼈冇泄餐淖嫦龋琀PFS 和 NTFS共享了相同的磁盤分區(qū)標(biāo)識代碼(0x07)。共享標(biāo)識是很不尋常的,因?yàn)榭捎玫拇a還有很多,其他文件系統(tǒng)都使用它們自己的編號。例如,F(xiàn)AT 擁有超過 9 個(gè)編號(FAT12丶FAT16丶FAT32 等等每個(gè)都有一個(gè))。用于區(qū)分文件系統(tǒng)的算法當(dāng)遇到代碼 0x07 的時(shí)候就不得不進(jìn)行額外的檢查。

版本

  NTFS 有五個(gè)正式發(fā)布的版本:

  v1.0,隨 NT 3.1 一起發(fā)布,發(fā)布于 1993 年中旬

  v1.1,隨 NT 3.5 一起發(fā)布,發(fā)布于 1994 年秋季

  v1.2,由 NT 3.51(1995 年中旬)和 NT 4(1996 年中旬)提供(有時(shí)候也被稱為“NTFS 4.0”,因?yàn)椴僮飨到y(tǒng)版本是 4.0)

  v3.0 來自 Windows 2000(有時(shí)稱作“NTFS 5.0”)

  v3.1 來自 Windows XP(2001 年,有時(shí)稱作“NTFS 5.1”),Windows Server 2003(2003 年春季,有時(shí)稱作“NTFS 5.2”), Windows Vista(2005 年中旬,有時(shí)稱作“NTFS 6.0”),Windows Server 2008(2008 年初),Windows Server 2008 R2(有時(shí)稱作“NTFS 6.1”)以及 Windows 7。

  V1.0 和 V1.1 以及所有以后版本不兼容,也就是說,使用 NT 3.5x 寫入的卷無法被 NT 3.1 讀取,除非使用 NT 3.5x 光盤更新 NT 3.1,并添加對 FAT 系統(tǒng)的長文件名支持。V1.2 支持壓縮文件、命名流、基于 ACL(訪問控制列表)的安全性等功能。

  V3.0 支持磁盤限額、加密、稀疏文件、重解析點(diǎn),更新串行數(shù)(USN)日志、$Extend文件夾以及其中的文件,并改進(jìn)了安全描述符,以便于使用相同安全設(shè)置的多個(gè)文件共享一個(gè)安全描述符。

  V3.1 使用冗余MFT 記錄數(shù)(用于恢復(fù)受損的 MFT文件)擴(kuò)展了主文件表(MFT)項(xiàng)。

  Windows Vista提供了事務(wù) NTFS、NTFS符號鏈接、收縮卷以及自我恢復(fù)功能,但這些附加功能由操作系統(tǒng)提供,而非文件系統(tǒng)自身的功能。

特點(diǎn)

支持大小

  NTFS可以支持的分區(qū)(如果采用動態(tài)磁盤則稱為卷)大小可以達(dá)到2TB。而Windows2000中的FAT32支持分區(qū)的大小最大為32GB。

文件系統(tǒng)

  NTFS是一個(gè)可恢復(fù)的文件系統(tǒng)。在NTFS分區(qū)上用戶很少需要運(yùn)行磁盤修復(fù)程序。NTFS通過使用標(biāo)準(zhǔn)的事務(wù)處理日志和恢復(fù)技術(shù)來保證分區(qū)的一致性。發(fā)生系統(tǒng)失敗事件時(shí),NTFS使用日志文件和檢查點(diǎn)信息自動恢復(fù)文件系統(tǒng)的一致性。

文件夾壓縮

  NTFS支持對分區(qū)、文件夾和文件的壓縮。任何基于Windows的應(yīng)用程序?qū)TFS分區(qū)上的壓縮文件進(jìn)行讀寫時(shí)不需要事先由其他程序進(jìn)行解壓縮,當(dāng)對文件進(jìn)行讀取時(shí),文件將自動進(jìn)行解壓縮;文件關(guān)閉或保存時(shí)會自動對文件進(jìn)行壓縮。

磁盤空間的有效管理

  ·NTFS采用了更小的簇,可以更有效率地管理磁盤空間。在Win 2000的FAT32文件系統(tǒng)的情況下,分區(qū)大小在2GB~8GB時(shí)簇的大小為4KB;分區(qū)大小在8GB~16GB時(shí)簇的大小為8KB;分區(qū)大小在16GB~32GB時(shí),簇的大小則達(dá)到了16KB。而Win 2000的NTFS文件系統(tǒng),當(dāng)分區(qū)的大小在2GB以下時(shí),簇的大小都比相應(yīng)的FAT32簇小;當(dāng)分區(qū)的大小在2GB以上時(shí)(2GB~2TB),簇的大小都為4KB。相比之下,NTFS可以比FAT32更有效地管理磁盤空間,最大限度地避免了磁盤空間的浪費(fèi)。

更好的安全性

  ·在NTFS分區(qū)上,可以為共享資源、文件夾以及文件設(shè)置訪問許可權(quán)限。許可的設(shè)置包括兩方面的內(nèi)容:一是允許哪些組或用戶對文件夾、文件和共享資源進(jìn)行訪問;二是獲得訪問許可的組或用戶可以進(jìn)行什么級別的訪問。訪問許可權(quán)限的設(shè)置不但適用于本地計(jì)算機(jī)的用戶,同樣也應(yīng)用于通過網(wǎng)絡(luò)的共享文件夾對文件進(jìn)行訪問的網(wǎng)絡(luò)用戶。與FAT32文件系統(tǒng)下對文件夾或文件進(jìn)行訪問相比,安全性要高得多。另外,在采用NTFS格式的Win 2000中,應(yīng)用審核策略可以對文件夾、文件以及活動目錄對象進(jìn)行審核,審核結(jié)果記錄在安全日志中,通過安全日志就可以查看哪些組或用戶對文件夾、文件或活動目錄對象進(jìn)行了什么級別的操作,從而發(fā)現(xiàn)系統(tǒng)可能面臨的非法訪問,通過采取相應(yīng)的措施,將這種安全隱患減到最低。這些在FAT32文件系統(tǒng)下,是不能實(shí)現(xiàn)的。

更多的功能

  ·在Win 2000的NTFS文件系統(tǒng)下可以進(jìn)行磁盤配額管理。磁盤配額就是管理員可以為用戶所能使用的磁盤空間進(jìn)行配額限制,每一用戶只能使用最大配額范圍內(nèi)的磁盤空間。設(shè)置磁盤配額后,可以對每一個(gè)用戶的磁盤使用情況進(jìn)行跟蹤和控制,通過監(jiān)測可以標(biāo)識出超過配額報(bào)警閾值和配額限制的用戶,從而采取相應(yīng)的措施。磁盤配額管理功能的提供,使得管理員可以方便合理地為用戶分配存儲資源,避免由于磁盤空間使用的失控可能造成的系統(tǒng)崩潰,提高了系統(tǒng)的安全性。

  NTFS使用一個(gè)“變更”日志來跟蹤記錄文件所發(fā)生的變更。

  還有諸如加密文件數(shù)據(jù)等等,和系統(tǒng)服務(wù)相關(guān)的不少東西。

系統(tǒng)優(yōu)點(diǎn)

 ?。?)更安全的文件保障,提供文件加密,能夠大大提高信息的安全性。

 ?。?)更好的磁盤壓縮功能。

  (3)支持最大達(dá)2TB的大硬盤,并且隨著磁盤容量的增大,NTFS的性能不像FAT那樣隨之降低。

 ?。?)可以賦予單個(gè)文件和文件夾權(quán)限。對同一個(gè)文件或者文件夾為不同用戶可以指定不同的權(quán)限。在NTFS文件系統(tǒng)中,可以為單個(gè)用戶設(shè)置權(quán)限。

 ?。?)NTFS文件系統(tǒng)中設(shè)計(jì)的恢復(fù)能力無需用戶在NTFS卷中運(yùn)行磁盤修復(fù)程序。在系統(tǒng)崩潰事件中,NTFS文件系統(tǒng)使用日志文件和復(fù)查點(diǎn)信息自動恢復(fù)文件系統(tǒng)的一致性。

 ?。?)NTFS文件夾的B-Tree結(jié)構(gòu)使得用戶在訪問較大文件夾中的文件時(shí),速度甚至比訪問卷中較小的文件夾中的文件還快。

  (7)可以在NTFS卷中壓縮單個(gè)文件和文件夾。NTFS系統(tǒng)的壓縮機(jī)制可以讓用戶直接讀寫壓縮文件,而不需要使用解壓軟件將這些文件展開。

 ?。?)支持活動目錄和域。此特性可以幫助用戶方便靈活地查看和控制網(wǎng)絡(luò)資源。

 ?。?)支持稀疏文件。稀疏文件是應(yīng)用程序生成的一種特殊文件,文件尺寸非常大,但實(shí)際上只需要很少的磁盤空間,也就是說,NTFS只需要為這種文件實(shí)際寫入的數(shù)據(jù)分配磁盤存儲空間。

  (10)支持磁盤配額。磁盤配額可以管理和控制每個(gè)用戶所能使用的最大磁盤空間。

注意事項(xiàng)

  NTFS是微軟Windows NT內(nèi)核的系列操作系統(tǒng)支持的、一個(gè)特別為網(wǎng)絡(luò)和磁盤配額、文件加密等管理安全特性設(shè)計(jì)的磁盤格式。除了在局域網(wǎng)安裝了NT系列的用戶們使用NTFS外,隨著NT內(nèi)核的桌面系統(tǒng)Windows2000和XP的普及,很多個(gè)人用戶也開始把自己的分區(qū)格式化為NTFS。

  在一般情況下,NTFS的格式不能被Windows9X識別,而且在安裝、操作方面也有差異,所以個(gè)人用戶在使用這種磁盤格式的時(shí)候,必須留意下面的注意事項(xiàng):

  一、NT內(nèi)核的系統(tǒng)應(yīng)始終使用NTFS 嗎?

  NTFS是微軟推薦在NT系列上使用的文件系統(tǒng),但是,會有一些特殊的原因使用其他文件系統(tǒng)。如果計(jì)劃用其他操作系統(tǒng)(包括MS-DOS)訪問文件,則應(yīng)把引導(dǎo)的分區(qū),即C盤選擇格式為 FAT(包括FAT32)文件系統(tǒng)。如果使用的是NTFS文件系統(tǒng)并要與Windows NT進(jìn)行雙重引導(dǎo),那么在繼續(xù)Windows 2000或XP的安裝之前,必須要為Windows NT安裝SP4或更高版本的補(bǔ)丁。

  二、轉(zhuǎn)化NTFS和其他分區(qū)格式的技巧

  一臺機(jī)器用PQ7把一個(gè)分區(qū)由NTFS轉(zhuǎn)換成FAT32格式,完成后發(fā)現(xiàn)該盤中的中文名的文件夾全部變成問號,打不開了。此時(shí)想轉(zhuǎn)回來時(shí)發(fā)現(xiàn)提示磁盤錯(cuò)誤,用Windows的磁盤掃描和DOS的CHKDSK檢查后仍無法轉(zhuǎn)換,里面有其下載的幾百M(fèi)的文件,已經(jīng)搞的面目全非了。

  其實(shí),如果NTFS的分區(qū)容量很大且內(nèi)有大量的數(shù)據(jù)存在的話,用直接轉(zhuǎn)換的方式不僅緩慢,而且是很危險(xiǎn)的——因?yàn)樵诿恳粋€(gè)步驟里,轉(zhuǎn)換的工具程序都要先讀取扇區(qū)信息、拷貝到臨時(shí)目錄、轉(zhuǎn)化格式再從臨時(shí)目錄讀數(shù)據(jù)重新寫入轉(zhuǎn)換好的空間,再校驗(yàn)……這樣的操作其實(shí)和低級格式化硬盤或是刷新主板的BIOS差不多危險(xiǎn),一旦發(fā)生掉電或是瞬間的數(shù)據(jù)量過大傳輸溢出緩沖區(qū)導(dǎo)致的死機(jī),重新開機(jī)后可能就會丟失分區(qū)的所有信息,或是破壞引導(dǎo)區(qū)數(shù)據(jù)甚至是損壞硬盤。

  如果硬盤其他分區(qū)有足夠的空間,用拷貝后刪除文件再轉(zhuǎn)化的方法,會事半功倍。具體的操作就是先在其他分區(qū)建立一個(gè)目錄,然后轉(zhuǎn)到你的NTFS分區(qū),選定全部文件,用復(fù)制粘貼的方法進(jìn)行轉(zhuǎn)移數(shù)據(jù)。然后把NTFS分區(qū)的數(shù)據(jù)清空,再進(jìn)行轉(zhuǎn)化格式就快很多,也安全得多了;從FAT的格式轉(zhuǎn)換到NTFS也是一樣道理。這種拷貝,比直接轉(zhuǎn)換分區(qū)格式讀讀寫寫、又校驗(yàn)數(shù)據(jù)的那種繁瑣過程快很多,可以在轉(zhuǎn)換完成后,把數(shù)據(jù)拷貝回該分區(qū)。

  另外,建議在清空數(shù)據(jù)后,利用GHOST鏡像NTFS或FAT格式的空白分區(qū),得到一個(gè)備份文件,以后如果再要轉(zhuǎn)換分區(qū)格式利用它來進(jìn)行就更快。

  三、虛擬內(nèi)存(頁面文件)與NTFS的卷

  很多人裝了雙硬盤系統(tǒng)甚至是簡單的RAID磁盤陣列,使用這種結(jié)構(gòu)的系統(tǒng)同時(shí)是需要NTFS支持卷功能的,此時(shí),應(yīng)該盡量避免頁面文件和系統(tǒng)文件在同一分區(qū)上,也不要在同一物理磁盤驅(qū)動器的不同分區(qū)中放置多個(gè)頁面文件。特別注意避免將頁面文件放入容錯(cuò)驅(qū)動器,例如鏡像卷或 RAID-5 卷,因?yàn)轫撁嫖募恍枰蒎e(cuò),而且一些容錯(cuò)系統(tǒng)將數(shù)據(jù)寫到多個(gè)位置,會導(dǎo)致非常緩慢的數(shù)據(jù)寫操作。

  四、虛擬機(jī)或是磁盤壓縮不適宜使用NTFS

  使用虛擬機(jī)時(shí),在NTFS分區(qū)引導(dǎo)的機(jī)器上使用光盤引導(dǎo)后,在裝操作系統(tǒng)的時(shí)候,將會出現(xiàn)以下提示:

  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.

  因?yàn)樘摂M機(jī)出于兼容的考慮,只內(nèi)置了最常用的硬件和軟件支持,對NTFS格式的支持還不是很好。你使用Windows9X加補(bǔ)丁的方式來讀寫NTFS分區(qū)的話,也可能會導(dǎo)致某些長文件名或是中文名的文件結(jié)構(gòu)被破壞;在使用GHOST備份和恢復(fù)的時(shí)候也可能會出現(xiàn)莫名其妙的錯(cuò)誤。所以,上NTFS還是用NT內(nèi)核的系列視窗系統(tǒng)好。

  另外,注意壓縮過的分區(qū)不能轉(zhuǎn)化為NTFS。其實(shí)壓縮磁盤分區(qū)變相增大容量是以系統(tǒng)速度的極大犧牲為代價(jià)的;而且還會給以后的系統(tǒng)維護(hù)、轉(zhuǎn)換分區(qū)格式、升級操作系統(tǒng)等等帶來很大麻煩。除非是完全出于備份數(shù)據(jù)的考慮,其他的應(yīng)用建議不要使用Windows的分區(qū)磁盤壓縮功能。

  NTFS數(shù)據(jù)恢復(fù)

  NTFS利用B-Tree文件管理方法來跟蹤文件在磁盤上的位置。這種技術(shù)比在FAT文件系統(tǒng)中使用的鏈接表技術(shù)具備更多的優(yōu)越性。文件名是順序存放的因而查找速度更快。B-tree的數(shù)據(jù)結(jié)構(gòu)使查找一個(gè)條目所需的磁盤訪問次數(shù)最少。 那么,文件是怎么樣被刪除了的,在NTFS文件系統(tǒng)下文件的刪除原理又是怎么的呢。當(dāng)在NTFS卷中刪除一個(gè)文件時(shí),系統(tǒng)至少在三個(gè)地方做了改變:

  (1)該文件MFT頭偏移16H處的一個(gè)字節(jié),該字節(jié)為0表示文件被刪除,為1表示該文件是正被使用的文件,為2表示其是一個(gè)目錄,為03的時(shí)候表示其為刪除目錄;

  (2)其父文件夾的INDEX_ROOT屬性(90H屬性)或者INDEX_ALLOCATION(A0H屬性);

  (3)在位圖($Bitmap)元數(shù)據(jù)文件中把該文件所占用的簇對應(yīng)的位置置0,這樣好給其他文件騰出空間。

  既然知道了文件的刪除原理,那么我們對文件的恢復(fù)就容易了許多。這里我們從刪除原理著手,分幾步將數(shù)據(jù)進(jìn)行恢復(fù):

  第一步:由于文件是通過主文件表MFT來確定其在磁盤上的存儲位置的,因此我們首先要找到MFT。

  第二步:找到MFT后,通過分析MFT中的文件記錄信息,(對于大型文件還可能有多個(gè)記錄與之相對應(yīng)),其中第一個(gè)文件記錄稱為基本文件記錄,而當(dāng)中存儲有其他擴(kuò)展文件記錄的一些信息。

  第三步:通過文件記錄的INDEX_ROOT索引根、INDEX_ALLOCATION索引分配以及位圖Bitmap對被刪文件加以確認(rèn)和定位。找到該文件在數(shù)據(jù)區(qū)中的存儲位置。

  第四步:恢復(fù)該文件。

  需要注意的是,在文件被刪除以后,雖然磁盤中被刪文件的相關(guān)屬性發(fā)生了改變。但是在我們對其進(jìn)行數(shù)據(jù)恢復(fù)時(shí),我們僅僅是將其相關(guān)信息復(fù)制到了內(nèi)存,并將相關(guān)信息做了修改。也就是說,對于為了修復(fù)數(shù)據(jù)而做的修改,其實(shí)并沒有寫回到原文件屬性上。這就有效的避免了被訪文件的再次破壞。

  在主文件表中,目錄的索引根屬性包含一些文件名,它們是到達(dá)B-Tree的第二層的索引。在這個(gè)索引根屬性中的每一個(gè)文件名都包含了個(gè)指向索引緩沖區(qū)的指針。這個(gè)索引緩沖區(qū)中包含有一些文件名,它們位于索引根屬性中的文件的名字之前。通過這種關(guān)系,我們可以使它們排在索引緩沖區(qū)中的那個(gè)文件之前。圖4-3 所示,利用這些索引緩沖區(qū),NTFS可以進(jìn)行折半查找,從而獲得更快的文件查找速度。

NTFS文件系統(tǒng)詳解

NTFS文件系統(tǒng)結(jié)構(gòu)總覽

  當(dāng)用戶將硬盤的一個(gè)分區(qū)格式化成NTFS分區(qū)時(shí),就建立了一個(gè)NTFS文件系統(tǒng)結(jié)構(gòu)。NTFS文件系統(tǒng)與FAT文件系統(tǒng)一樣,也是用簇為基本單位對磁盤空間和文件存儲進(jìn)行管理的。一個(gè)文件總是占有若干個(gè)簇,即使在最后一個(gè)簇沒有完全放滿的情況下,也是占用了整個(gè)簇的空間,這也是造成磁盤空間浪費(fèi)的主要原因。文件系統(tǒng)通過簇來管理磁盤管理,并不需要知道磁盤扇區(qū)的大小,這樣就使NTFS保持了與磁盤扇區(qū)大小的獨(dú)立性,從而使不同大小的磁盤選擇合適的簇。

  NTFS分區(qū)也被稱為NTFS卷,卷上簇的大小,又稱為卷因子,其大小是用戶在創(chuàng)建NTFS卷時(shí)確定的。和FAT文件系統(tǒng)一樣,卷因子的大小和文件系統(tǒng)的性能有著非常直接的關(guān)系。當(dāng)一樣簇占用的空間太小時(shí),會出現(xiàn)太多的磁盤碎片,這樣的空間和文件訪問時(shí)間上會造成浪費(fèi);而相反的當(dāng)一個(gè)簇占用的空間太大時(shí),直接造成了磁盤空間的浪費(fèi)。因此,最大限度地優(yōu)化系統(tǒng)對文件的訪問速度和最大限度地減少磁盤空間的浪費(fèi)是確定簇的大小的主要因素。簇的大小一定是扇區(qū)大小的整數(shù)倍,通常是2(n為整數(shù))。

  NTFS文件系統(tǒng)使用了邏輯簇號(LCN)和虛擬簇號(VCN)對卷進(jìn)行管理。其中LCN是對卷的第一個(gè)簇到最后一個(gè)簇進(jìn)行編號,只要知道LCN號和簇的大小以及NTFS卷在物理磁盤中的起始扇區(qū)就可以對簇進(jìn)行定位,而這些信息在NTFS卷的引導(dǎo)扇區(qū)中可以找到,在系統(tǒng)底層也是用這種方法對文件的簇進(jìn)行定位的。找到簇在磁盤中的物理位置的計(jì)算公式是:

  每簇扇區(qū)數(shù)*簇號+卷的隱含扇區(qū)數(shù)(卷之前的扇區(qū)總數(shù))=簇的起始絕對扇區(qū)號

  而虛擬簇號則是將特定文件的簇從頭到尾進(jìn)行編號,這樣做的原因是方便系統(tǒng)對文件中的數(shù)據(jù)進(jìn)行引用,VCN并不要求在物理上是連續(xù)的,要確定VCN的磁盤上的定位需先將其轉(zhuǎn)換為LCN。[1]

  NTFS文件系統(tǒng)的主文件表中還記錄了一些非常重要的系統(tǒng)數(shù)據(jù),這些數(shù)據(jù)被稱為元數(shù)據(jù)文件,簡稱為“元文件”,其中包括了用于文件定位和恢復(fù)數(shù)據(jù)結(jié)構(gòu)、引導(dǎo)程序數(shù)據(jù)及整個(gè)卷的分配位圖等信息。NTFS文件系統(tǒng)將這些數(shù)據(jù)都當(dāng)做文件進(jìn)行管理,這些文件用戶是不能訪問的,它們的文件名的第一個(gè)字符都是“$”,表示該文件是隱藏的。在NTFS文件系統(tǒng)中這樣的文件主要有16個(gè),包括MFT本身($MFT)、MFT鏡像、日志文件、卷文件、屬性定義表、根目錄、位圖文件、引導(dǎo)文件、壞簇文件、安全文件、大寫文件、擴(kuò)展元數(shù)據(jù)文件、重解析點(diǎn)文件、變更日志文件、配額管理文件、對象ID文件等,這16個(gè)元數(shù)據(jù)文件總是占據(jù)著MFT的前16項(xiàng)紀(jì)錄,在16項(xiàng)以后就是用戶建立的文件和文件夾的記錄了。

  每個(gè)文件記錄在主文件表中占據(jù)的磁盤空間一般為1KB,也就是兩個(gè)扇區(qū),NTFS文件系統(tǒng)分配給主文件表的區(qū)域大約占據(jù)了磁盤空間的12.5%,剩余的磁盤空間用來存放其他元文件和用戶的文件。

  $MFT中前16個(gè)文件記錄總是元文件的記錄,并且這16個(gè)文件記錄的順序是固定的,下面對這16個(gè)記錄簡單做一個(gè)介紹:

  第1個(gè)記錄就是$MFT自身的記錄,也就是說$MFT首先對自己進(jìn)行管理。

  第2個(gè)記錄是$MFTMirr的記錄,也就是$MFT前4個(gè)文件記錄的鏡像。

  第3個(gè)記錄是日志文件($LogFile)的記錄,該文件是NTFS為實(shí)現(xiàn)可恢復(fù)性和安全性而設(shè)計(jì)的。當(dāng)系統(tǒng)運(yùn)行時(shí),NTFS就會在日志文件中記錄所有影響NTFS卷結(jié)構(gòu)的操作,包括文件的創(chuàng)建和改變目錄結(jié)構(gòu)的命令,從而可在系統(tǒng)失敗時(shí)能夠恢復(fù)NTFS卷。

  第4個(gè)記錄是卷文件($Volume)的記錄,它包含卷名、NTFS的版本和一個(gè)標(biāo)明該磁盤是否損壞的標(biāo)志位,NTFS文件系統(tǒng)以此決定是否需要調(diào)用Chkdsk程序來進(jìn)行修復(fù)。

  第5個(gè)記錄是屬性定義表($AttrDe,attribute definition table)的記錄,其中存放著卷所支持的所有文件屬性,并指出它們是否可以被索引和恢復(fù)等。

  第6個(gè)記錄是根目錄($ROOT)的記錄,其中保存著該卷根目錄下的所有文件和目錄的索引。在訪問一個(gè)文件后,NTFS就保留該文件的MFT引用,第二次就能夠直接訪問該文件。

  第7個(gè)記錄是位圖文件($Bitmap)的記錄,NTFS卷的簇使用情況都保存在這個(gè)位圖文件中,其中每一位(bit)代表卷中的一簇,標(biāo)識該簇的空間還是已分配。由于該文件可以很容易被擴(kuò)大,所以,NTFS的卷可以很方便地動態(tài)擴(kuò)大,而FAT格式的文件系統(tǒng)由于涉及FAT表的變化,所以不能隨意對分區(qū)大小進(jìn)行調(diào)整。

  第8個(gè)記錄是引導(dǎo)文件($Boot)的記錄,該文件中存放著操作系統(tǒng)的引導(dǎo)程序代碼。該文件必須位于特定的磁盤位置才能夠正確地引導(dǎo)系統(tǒng),一般都是位于卷的最前面。

  第9個(gè)記錄是壞簇文件($BadClus)的記錄,它記錄著該卷中所有損壞的簇號,防止系統(tǒng)對其進(jìn)行分配使用。

  第10個(gè)記錄是安全文件($Secure)的記錄,它存儲著整個(gè)卷的安全描述符數(shù)據(jù)庫。NTFS文件和目錄都有各自的安全描述符,為節(jié)省空間,NTFS將文件和目錄的相同描述符存放在此公共文件中。

  第11個(gè)記錄為大寫文件($UpCase,upper case file)的記錄,該文件包含一個(gè)大小寫字符轉(zhuǎn)換表。

  第12個(gè)記錄是擴(kuò)展元數(shù)據(jù)目錄($Extended metadata directory)的記錄。

  第13個(gè)記錄是重解析點(diǎn)文件($Extend\$Reparse)的記錄。

  第14個(gè)記錄是變更日志文件($Extend\UsnJrnl)的記錄。

  第15個(gè)記錄是配額管理文件($Extend\Quota)的記錄。

  第16個(gè)記錄是對象ID文件($Extend\ObjId)的記錄。

  第17—23記錄是系統(tǒng)保留的記錄,暫時(shí)不用,用于將來擴(kuò)展。

  第24個(gè)記錄開始存放用戶文件的記錄。

NTFS文件系統(tǒng)引導(dǎo)扇區(qū):

  NTFS文件系統(tǒng)的引導(dǎo)扇區(qū)是$Boot的第一個(gè)扇區(qū),它的結(jié)構(gòu)與FAT文件系統(tǒng)的DBR類似,所以習(xí)慣上也稱該扇區(qū)為DBR扇區(qū)。DBR扇區(qū)在操作系統(tǒng)的引導(dǎo)過程起著非常重要的作用,如果這個(gè)扇區(qū)遭到破壞,系統(tǒng)將不能正常啟動。

  NTFS文件系統(tǒng)的DBR扇區(qū)與FAT文件系統(tǒng)的結(jié)構(gòu)一樣。也包括跳轉(zhuǎn)指令、OEM代號、BPB參數(shù)、引導(dǎo)程序和結(jié)束標(biāo)志。

  跳轉(zhuǎn)指令

  跳轉(zhuǎn)指令本身占用2字節(jié),它將程序執(zhí)行流程跳轉(zhuǎn)到引導(dǎo)程序處,

  OEM代號

  這部分占8字節(jié),其內(nèi)容由創(chuàng)建該文件系統(tǒng)的OEM廠商具體安排,

  BPB參數(shù)

  BPB是BIOS Parameter Block的縮寫,其含義為BIOS參數(shù)塊。BPB從DBR的第12個(gè)字節(jié)開始,到偏移53H結(jié)束,占用73字節(jié),記錄了有關(guān)文件系統(tǒng)的重要信息[1]  。


內(nèi)容來自百科網(wǎng)