文件系統(tǒng)基礎(chǔ)_第1頁(yè)
文件系統(tǒng)基礎(chǔ)_第2頁(yè)
文件系統(tǒng)基礎(chǔ)_第3頁(yè)
文件系統(tǒng)基礎(chǔ)_第4頁(yè)
文件系統(tǒng)基礎(chǔ)_第5頁(yè)
已閱讀5頁(yè),還剩19頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

文件系統(tǒng)基礎(chǔ)知識(shí)目錄硬盤(pán)基礎(chǔ)磁道、扇區(qū)、柱面分區(qū)知識(shí)DOS分區(qū)體系文件系統(tǒng)概述FAT32文件系統(tǒng)NTFS文件系統(tǒng)硬盤(pán)基礎(chǔ)磁道:當(dāng)磁盤(pán)旋轉(zhuǎn)時(shí),磁頭若保持在一個(gè)位置上,則每個(gè)磁頭都會(huì)在磁盤(pán)表面劃出一個(gè)圓形軌跡,這些

圓形軌跡就叫做磁道。扇區(qū):磁盤(pán)上的每個(gè)磁道被等分為若干個(gè)弧段,這些弧

段便是磁盤(pán)的扇區(qū),每個(gè)扇區(qū)可以存放512個(gè)字

節(jié)的信息,磁盤(pán)驅(qū)動(dòng)器在向磁盤(pán)讀取和寫(xiě)入數(shù)據(jù)

時(shí),要以扇區(qū)為單位。柱面:硬盤(pán)通常由重疊的一組盤(pán)片構(gòu)成,每個(gè)盤(pán)面都被

劃分為數(shù)目相等的磁道,并從外緣的“0”開(kāi)始編

號(hào),具有相同編號(hào)的磁道形成一個(gè)圓柱,稱(chēng)之為

磁盤(pán)的柱面。分區(qū)知識(shí)使用DOS分區(qū)體系時(shí),磁盤(pán)的第一個(gè)扇區(qū)被稱(chēng)為主引導(dǎo)記錄扇區(qū)。當(dāng)系統(tǒng)完成自檢后,首先尋找磁盤(pán)的MBR扇區(qū)并讀取其中的引導(dǎo)記錄,然后將系統(tǒng)控制權(quán)交給它。主引導(dǎo)記錄(MBR):由446個(gè)字節(jié)的引導(dǎo)代碼、64個(gè)字節(jié)的主分區(qū)表及2個(gè)字節(jié)的簽名值“55AA”組成。引導(dǎo)代碼:MBR接管系統(tǒng)的控制權(quán)后,引導(dǎo)代碼負(fù)責(zé)對(duì)其他代碼信息進(jìn)行檢查并進(jìn)一步引導(dǎo)系統(tǒng)。分區(qū)表:分區(qū)表負(fù)責(zé)描述磁盤(pán)內(nèi)的分區(qū)情況?!?5AA”有效標(biāo)志:通知系統(tǒng)該MBR扇區(qū)是否有效。文件系統(tǒng)總論文件系統(tǒng)中的基本概念數(shù)據(jù)單元:

數(shù)據(jù)在寫(xiě)入磁盤(pán)或從磁盤(pán)讀取時(shí)每次操作的數(shù)據(jù)量稱(chēng)為數(shù)據(jù)單元,它的大小在建立文件系統(tǒng)式確定,一個(gè)數(shù)據(jù)單元由若干個(gè)連續(xù)的扇區(qū)組成,存儲(chǔ)數(shù)據(jù)時(shí),系統(tǒng)以數(shù)據(jù)單元為單位為其分配存儲(chǔ)空間。數(shù)據(jù)單元在不同的操作系統(tǒng)中有不同的稱(chēng)呼方式。分配策略:第一可用分配策略:即當(dāng)為一個(gè)文件分配了一個(gè)存儲(chǔ)單元后還需要繼續(xù)為其分配時(shí),操作系統(tǒng)重新從文件系統(tǒng)的起始處搜索可以使用的空間下一可用分配策略:即為文件分配了一個(gè)存儲(chǔ)單元后并不再回到起始處重新尋找可用空間,而是直接向后進(jìn)行搜索。最佳可用分配策略:即在為文件分配空間時(shí),會(huì)盡可能找到足夠連續(xù)的空間以避免其片段化。文件更新策略:有的程序在對(duì)文件更新時(shí),直接打開(kāi)原文件,更新后直接用新文件覆蓋原文件進(jìn)行保存。有的程序則是先產(chǎn)生一個(gè)原文件的副本,對(duì)副本進(jìn)行更新,然后將副本以原文件名保存在新的位置同時(shí)刪除原文件。FAT文件系統(tǒng)概述名字由來(lái)FAT(FileAllocationTable,文件分配表)文件系統(tǒng)的名字由來(lái)就是因?yàn)樗褂梦募峙浔砻枋鑫募到y(tǒng)內(nèi)存儲(chǔ)單元的分配狀態(tài)及文件內(nèi)容的前后鏈接關(guān)系。簇FAT文件系統(tǒng)數(shù)據(jù)單元稱(chēng)之為“簇”,一個(gè)“簇”由一組連續(xù)的扇區(qū)組成。用戶(hù)文件和目錄都存儲(chǔ)在簇中。所有的簇從2開(kāi)始編號(hào)。FAT文件系統(tǒng)整體布局總體來(lái)講,一個(gè)FAT文件系統(tǒng)可以分為三個(gè)部分:保留區(qū)、FAT區(qū)和數(shù)據(jù)區(qū)。這個(gè)三個(gè)區(qū)域在建立文件系統(tǒng)(格式化)時(shí)即被創(chuàng)建。FAT文件系統(tǒng)整體布局

保留區(qū)FAT1FAT2數(shù)據(jù)區(qū)FAT區(qū)FAT32文件系統(tǒng)保留區(qū)保留區(qū):位于FAT32文件系統(tǒng)前部,由若干個(gè)扇區(qū)組成而成。其中包含一個(gè)重要的數(shù)據(jù)結(jié)構(gòu)-系統(tǒng)導(dǎo)扇區(qū)。保留區(qū)的大小存在于引導(dǎo)扇區(qū)中。引導(dǎo)扇區(qū)是FAT32文件系統(tǒng)的第一個(gè)扇區(qū),也稱(chēng)為DBR扇區(qū)。包含如下基本信息:每扇區(qū)字節(jié)數(shù)每簇扇區(qū)數(shù)保留扇區(qū)數(shù)

FAT表個(gè)數(shù)文件系統(tǒng)大小(扇區(qū)數(shù))

每FAT表大小(扇區(qū)數(shù))

根目錄起始簇號(hào)其他附加信息FAT32文件系統(tǒng)的FAT表FAT表的作用描述簇的分配狀態(tài)及標(biāo)明文件或目錄的下一簇的簇號(hào)。FAT表的組成一系列的大小相等的FAT表項(xiàng)組成,F(xiàn)AT表項(xiàng)從0開(kāi)始進(jìn)行地址編號(hào),0號(hào)地址和1號(hào)地址被系統(tǒng)保留并存儲(chǔ)特殊標(biāo)志內(nèi)容。從2號(hào)地址開(kāi)始,每個(gè)地址對(duì)應(yīng)于數(shù)據(jù)區(qū)的簇號(hào)。注:由創(chuàng)建文件系統(tǒng)時(shí)同時(shí)也會(huì)創(chuàng)建根目錄,也就是要為根目錄分配一個(gè)簇空間,

通常為2號(hào)簇。FAT表的記錄情況:

新建文件:如果新建的文件只占用一個(gè)簇,為其分配的簇所對(duì)應(yīng)的FAT表項(xiàng)將會(huì)被寫(xiě)入結(jié)束標(biāo)記,如果新建的文件不只占用一個(gè)簇,則在為其所占用的每個(gè)簇對(duì)應(yīng)的FAT表項(xiàng)中寫(xiě)入為其分配的下一個(gè)簇號(hào),最后一個(gè)簇對(duì)應(yīng)的FAT表項(xiàng)中寫(xiě)入結(jié)束標(biāo)記。

新建目錄:新建目錄時(shí),只為其分配一個(gè)簇的空間,對(duì)應(yīng)的FAT表項(xiàng)中寫(xiě)入結(jié)束標(biāo)記。

刪除文件或目錄:它們所對(duì)應(yīng)的FAT表項(xiàng)將被清空,設(shè)置為0。FAT32文件系統(tǒng)的數(shù)據(jù)區(qū)概述:數(shù)據(jù)區(qū)是真正用于存儲(chǔ)用戶(hù)數(shù)據(jù)的區(qū)域。數(shù)據(jù)區(qū)緊跟在FAT2之后,被劃分為一個(gè)個(gè)的簇,所有的簇從2開(kāi)始依次編號(hào)。數(shù)據(jù)區(qū):根目錄:在文件系統(tǒng)建立時(shí)即被創(chuàng)建,其目的就是存儲(chǔ)子目錄或文件的目錄項(xiàng)。子目錄:我們將除根目錄以外的目錄都稱(chēng)為子目錄。目錄項(xiàng):目錄項(xiàng)中記錄子目錄或文件的起始簇號(hào)、名字、大小時(shí)間值等信息。每個(gè)目錄項(xiàng)的大小為32個(gè)字節(jié)。文件系統(tǒng)在創(chuàng)建時(shí)即為根目錄分配了一個(gè)簇的空間(通常為2號(hào)簇)。在根目錄下新建目錄或文件時(shí),就是在為根目錄分配的簇中為其建立目錄項(xiàng)。在為子目錄建立目錄項(xiàng)的同時(shí),也在為子目錄分配的簇中,使用前兩個(gè)目錄項(xiàng)描述與父目錄的的關(guān)系。FAT32文件系統(tǒng)下建立和刪除文件實(shí)例建立文件假設(shè)現(xiàn)在有一個(gè)子目錄,名字為“子目錄1”,我們要在其下建立一個(gè)文件“文件1.txt”,簇大小為4096字節(jié),文件大小為5000字節(jié)。

操作步驟刪除文件

刪除前面建立的“子目錄1\文件1.txt”

操作步驟NTFS文件系統(tǒng)概述概述:NTFS與以前的FAT文件系統(tǒng)完全不同,它采取了不同的方式對(duì)文件系統(tǒng)中的數(shù)據(jù)進(jìn)行管理,甚至包括文件系統(tǒng)管理數(shù)據(jù)本身,NTFS文件系統(tǒng)將所有的數(shù)據(jù)都視為文件,通常在其他文件系統(tǒng)中被隱藏的管理數(shù)據(jù)在NTFS中也被存儲(chǔ)在文件中?;靖拍睿篗FT:即主文件表的簡(jiǎn)稱(chēng),它是NTFS文件系統(tǒng)的核心。MFT由一個(gè)個(gè)的MFT項(xiàng)(

也稱(chēng)為文件記錄)組成,每個(gè)MFT項(xiàng)占用1024字節(jié)的空間。屬性:在NTFS中,所有與數(shù)據(jù)相關(guān)的信息都被稱(chēng)為“屬性”,文件名屬性、時(shí)間

日期屬性、甚至文件內(nèi)容被稱(chēng)為“數(shù)據(jù)屬性”。NTFS元文件:NTFS文件系統(tǒng)被創(chuàng)建時(shí),會(huì)同時(shí)建立一些重要的系統(tǒng)信息。這些

系統(tǒng)信息也全是以文件的形式存在,被稱(chēng)為元文件。元文件的文件名都以

“$”符號(hào)開(kāi)頭,表示其為隱藏的系統(tǒng)文件,用戶(hù)不可直接訪問(wèn)。NTFS文件系統(tǒng)總體布局用戶(hù)數(shù)據(jù)MFT區(qū)用戶(hù)數(shù)據(jù)用戶(hù)數(shù)據(jù)引導(dǎo)區(qū)(通常16個(gè)扇區(qū))MFT部分記錄的備份DBR備份(1個(gè)扇區(qū))NTFS文件系統(tǒng)的主文件表MFT概述格式化成NTFS文件系統(tǒng)式,就在其中建立了一個(gè)主文件表MFT,其中包含16個(gè)元文件的文件記錄。主文件表MFT由一個(gè)個(gè)的MFT項(xiàng)組成,每個(gè)MFT項(xiàng)實(shí)際上就是一個(gè)文件記錄,其中用各種屬性記錄著該文件或目錄的各種信息。Microsoft的所有版本中每個(gè)MFT項(xiàng)都是用1024字節(jié)的大小。主文件表項(xiàng)MFT頭:MFT項(xiàng)前部為一個(gè)包含幾十個(gè)字節(jié)的具有固定的大小和結(jié)構(gòu)的MFT頭。屬性列表:MFT項(xiàng)除了MFT頭以外的剩余字節(jié)為屬性列表,用于存放各種屬性。MFT屬性MFT屬性:每個(gè)MFT項(xiàng)的大小為1024字節(jié),分為兩個(gè)部分一部分MFT頭,另一部分為屬性列表。屬性分為常駐屬性和非常駐屬性:常駐屬性:有的屬性屬性?xún)?nèi)容很小,它的MFT項(xiàng)可以容納下它的全部?jī)?nèi)容,為節(jié)省空

間系統(tǒng)會(huì)直接將其存放在MFT項(xiàng)中,不再為其另外分配簇空間,這樣的屬性

稱(chēng)為常駐屬性。非常駐屬性:非常駐屬性是指那些內(nèi)容較大,無(wú)法完全存放在起MFT項(xiàng)中的屬性,如文

件的數(shù)據(jù)屬性,通常內(nèi)容較大,需要在MFT外另外分配簇空間進(jìn)行存儲(chǔ),這

樣的屬性就是非常駐屬性。MFT屬性的組成:屬性有很多類(lèi)型,每種類(lèi)型的屬性都有自己的內(nèi)部結(jié)構(gòu),其大體結(jié)構(gòu)都可以分成兩個(gè)部分:屬性頭和屬性?xún)?nèi)容。屬性頭:用以說(shuō)明該屬性的類(lèi)型、大小和名字,同時(shí)還包含壓縮和加密標(biāo)志。常駐屬性和非常駐屬性的屬性頭結(jié)構(gòu)不同。屬性?xún)?nèi)容:實(shí)際的屬性?xún)?nèi)容,屬性?xún)?nèi)容有不同的格式和大小。MFT屬性-常規(guī)屬性類(lèi)型標(biāo)準(zhǔn)信息屬性:$STANDARD_INFORMATION,存儲(chǔ)時(shí)間、所有權(quán)和安全信息;文件名屬性:$FILE_NAME,存儲(chǔ)文件名、文件大小、時(shí)間信息;數(shù)據(jù)屬性:$DATA,存儲(chǔ)文件內(nèi)容;屬性列表屬性:$ATTRIBUTE_LIST,存儲(chǔ)文件或目錄的全部屬性;索引根目錄:$INDEX_ROOT,包含存儲(chǔ)在其中讀、的文件或子目錄的相關(guān)信息;索引分配屬性:$INDEX_ALLOCATION,當(dāng)目錄較大時(shí),存儲(chǔ)它的索引項(xiàng);位圖屬性:$BITMAP,用于描述索引或$MFT的分配情況;NTFS文件系統(tǒng)元文件創(chuàng)建一個(gè)NTFS文件系統(tǒng)是,就會(huì)在其中建立一些用于文件系統(tǒng)管理的元數(shù)據(jù)文件,部分元數(shù)據(jù)文件介紹如下:$MFT文件:主文件表文件。我們?cè)L問(wèn)一個(gè)MFT項(xiàng)時(shí),就是訪問(wèn)$MFT文件中某個(gè)文件記錄。$MFTMirr文件:MFT前幾個(gè)MFT項(xiàng)的備份。$LogFile文件:日志文件。$Volume文件:卷文件。$AttrDef文件:屬性定義列表文件,定義每種屬性屬性的名字和類(lèi)型$Root文件:根目錄文件$Bitmap文件:位圖文件,它的數(shù)據(jù)屬性的每個(gè)bit對(duì)應(yīng)文件系統(tǒng)中的一個(gè)簇,用以描述簇的分配

情況。$Boot文件:引導(dǎo)文件。$Secure文件:安全文件。$UsnJrnl文件:變更日志文件。$Quota文件:配額管理文件。$Objld文件:對(duì)象ID文件。NTFS文件系統(tǒng)中建立、刪除文件實(shí)例建立文件我們要建立一個(gè)文件“\子目錄1\file.txt”,假設(shè)目錄“子目錄1”已經(jīng)存在于根目錄下。要建立的文件大小為7000個(gè)字節(jié),每簇大小為4096個(gè)字節(jié)。

操作步驟刪除文件刪除“\子目錄1\file.txt”

操作步驟附錄1FAT32系統(tǒng)下建立文件步驟1:讀取引導(dǎo)扇區(qū),根據(jù)引導(dǎo)扇區(qū)中的信息定位FAT表、數(shù)據(jù)區(qū)和根目錄的位置。步驟2:查看根目錄下的每個(gè)目錄項(xiàng),尋找名字為“子目錄1”且具有目錄屬性的目錄項(xiàng)。找到后,查看它的起始簇號(hào),為3。步驟3:讀取子目錄1的起始簇的內(nèi)容,查看每個(gè)目錄項(xiàng),直到直到一個(gè)未分配的目錄項(xiàng)步驟4:找到可用項(xiàng)后寫(xiě)入文件名“文件1.txt”,并將文件大小和當(dāng)前時(shí)間寫(xiě)入相應(yīng)的位置步驟5:為文件內(nèi)容分配簇空間,找到FAT分配表,尋找空閑的位置。發(fā)現(xiàn)4號(hào)FAT表項(xiàng)未使用,這說(shuō)明4號(hào)簇時(shí)空閑的。將4號(hào)簇分配給文件,并在4號(hào)簇的FAT表項(xiàng)內(nèi)寫(xiě)入結(jié)束標(biāo)記。步驟6:將簇號(hào)4寫(xiě)入文件目錄項(xiàng)的起始簇號(hào)區(qū)域。將文件的前4096字節(jié)寫(xiě)入到4號(hào)簇中,還剩余904字節(jié),還要需要再為其分配一個(gè)簇。步驟7:再FAT表中繼續(xù)尋找未分配簇,找到5號(hào)簇為空閑未使用。步驟8:將文件第一簇的FAT表項(xiàng)值改寫(xiě)為5,將文件的最后904字節(jié)寫(xiě)入5號(hào)簇。步驟9:再5號(hào)簇的FAT表項(xiàng)內(nèi)寫(xiě)入結(jié)束標(biāo)記。附錄2FAT32系統(tǒng)下刪除文件步驟1:讀取引導(dǎo)扇區(qū),根據(jù)其中的信息定位FAT表、數(shù)據(jù)區(qū)和個(gè)目錄的位置步驟2:再個(gè)目下尋找到名字為“子目錄1”且具有目錄屬性的目錄項(xiàng)步驟3:有“子目錄1”的目錄項(xiàng)中獲得它的起始簇號(hào)為3,到3號(hào)簇查看“子目1”的內(nèi)容,從中找到文件“文件1.txt”的目錄項(xiàng),提取出它的起始簇,

為4號(hào)簇。步驟4:到FAT表中找到該文件的簇鏈,確定他的存儲(chǔ)為4號(hào)簇和5號(hào)簇。步驟5:將4號(hào)簇和5號(hào)簇的FAT項(xiàng)設(shè)置為0.步驟6:將文件“文件1.txt”的目錄項(xiàng)第一個(gè)字節(jié)改為0xE5。附錄3NTFS文件系統(tǒng)下建立文件步驟1:讀取文件系的引導(dǎo)扇區(qū),獲取簇大小、MFT起始位置以及每個(gè)MFT項(xiàng)的大小。步驟2:讀取第一個(gè)MFT項(xiàng),即$MFT文件的MFT項(xiàng),由它的$DATA屬性獲取其他MFT的位置。步驟3:首先為準(zhǔn)備新建的文件建立MFT項(xiàng)——訪問(wèn)$MFT文件的$BITMAP屬性,找到一個(gè)未分

配的項(xiàng)。第一個(gè)空閑項(xiàng)為400號(hào),把它分配給新文件并將$BITMAP中的相應(yīng)位設(shè)置為1步驟4:初始化MFT項(xiàng)——跳轉(zhuǎn)到400號(hào)MFT項(xiàng)的位置,將其中的內(nèi)容清楚。建立標(biāo)準(zhǔn)信息屬性($STANDARD_INFORMATION)和文件名屬性($FILE_NAME),時(shí)間值設(shè)置為當(dāng)前時(shí)間

。在MFT項(xiàng)頭中設(shè)置使用中標(biāo)記。步驟5:從使用6號(hào)MFT項(xiàng)的$Bitmap文件中為文件的$DATA屬性尋找并分配兩個(gè)簇。使用最佳

分配策略找到兩個(gè)連續(xù)的空閑簇722和723號(hào)簇,將其相應(yīng)的bit設(shè)置為1。將文件內(nèi)容寫(xiě)

入簇中,更新$DATA屬性中的簇地址。修改了MFT項(xiàng)所以更新文件的最后修改時(shí)間值步驟6:下一步為其添加文件名項(xiàng)。訪問(wèn)使用5號(hào)MFT項(xiàng)的根目錄,定位“子目錄1”。讀取索引

根屬性($INDEX_ROOT)和索引分配屬性($INDEX_ALLOCATION),在倒置樹(shù)中分類(lèi)尋找,找到“子目錄1”的索引項(xiàng),它的MFT項(xiàng)地址為200,更新目錄的最后訪問(wèn)時(shí)間。步驟7:跳轉(zhuǎn)到200號(hào)MFT項(xiàng)訪問(wèn)它的索引根屬性($INDEX_ROOT),尋找將為file.txt分配的空間

。為其建立一個(gè)新的索引項(xiàng)重新對(duì)倒置樹(shù)進(jìn)行分類(lèi)。新索引項(xiàng)的文件參考號(hào)地址是400

號(hào)MFT項(xiàng)。設(shè)置相應(yīng)的時(shí)間值和標(biāo)志更新目錄的最后寫(xiě)入、最后修改、最后訪問(wèn)時(shí)間值步驟8:在前面的每一步中,在文件系統(tǒng)日志中建立項(xiàng)并將改變記入\$Extend\$UsrJrnl。如

果設(shè)置了配額管理,新文件的大小將記入用戶(hù)的配額中($Extend\$Quota)。附錄4

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論