




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第2章FAT文件系統(tǒng)
2.1DBR2.2FDT和FAT2.3文件、目錄和長文件名思考題
2.1DBR
2.1.1DBR的概念和組成
1.DBR的概念
DBR(DOSBootRecord)即操作系統(tǒng)引導(dǎo)記錄扇區(qū),從字面可以得知,它的作用與引導(dǎo)操作系統(tǒng)有關(guān)。DBR有兩個重要功能,即引導(dǎo)系統(tǒng)和保存文件系統(tǒng)參數(shù)。DBR本身是由高級格式化工具(如Format)建立的,大小為1個扇區(qū),占用512字節(jié)。
2.DBR的組成
DBR位于硬盤各分區(qū)的開始處,由5個部分組成,如表2-1所示。表2-1DBR的結(jié)構(gòu)
1)跳轉(zhuǎn)指令
跳轉(zhuǎn)指令實際上只有兩個字節(jié),其作用是跳轉(zhuǎn)到自舉代碼執(zhí)行引導(dǎo)程序。跳轉(zhuǎn)指令的第一個字節(jié)是跳轉(zhuǎn)命令JMP,后面是跳轉(zhuǎn)偏移量,偏移量以跳轉(zhuǎn)指令的下一字節(jié)開始計算,即以第三個字節(jié)NOP(90)空指令為起始地址。
2)?DOS版本號
該部分有8個字節(jié),且隨不同DOS版本而有所變化。
3)?BIOS參數(shù)塊
BIOS參數(shù)塊也稱做BPB(BIOSParameterBlock),記錄著分區(qū)重要的參數(shù)信息。BPB的結(jié)構(gòu)如表2-2所示。
表2-2中,保留扇區(qū)數(shù)是操作系統(tǒng)保留用作引導(dǎo)系統(tǒng)的扇區(qū)數(shù),Windows系統(tǒng)一般有32個保留扇區(qū)。系統(tǒng)隱含扇區(qū)數(shù)是指在DBR之前已分配的若干個扇區(qū),用于存放MBR或虛擬MBR,一般為63個。MBR分區(qū)表有一個隱含扇區(qū)參數(shù),它是指本分區(qū)之前已用的扇區(qū)數(shù),和DBR系統(tǒng)隱含扇區(qū)是不同的。表2-2BPB的結(jié)構(gòu)
4)?DOS引導(dǎo)程序
該部分是Boot代碼。當(dāng)引導(dǎo)程序從MBR接收系統(tǒng)控制權(quán)后,該代碼負責(zé)判斷和裝入操作系統(tǒng)引導(dǎo)文件。
5)結(jié)束標志
DBR的結(jié)束標志為“55AA”,與MBR的相同。
操作系統(tǒng)管理分區(qū)文件所需的重要參數(shù)都存放在BIOS參數(shù)塊里,如每扇區(qū)字節(jié)數(shù)、每簇扇區(qū)數(shù)、每磁道扇區(qū)數(shù)等。需要指出的是,這些參數(shù)的作用范圍僅限于DBR所在的分區(qū),因此各分區(qū)均用各自的DBR存放BIOS參數(shù)。2.1.2DBR與MBR的比較
初學(xué)者經(jīng)常將MBR與DBR混為一談,究其原因是沒有弄清楚它們的區(qū)別。這里我們將DBR和MBR放在一起做個比較,使讀者對二者能有一個更深入的認識。
1.DBR與MBR的相似點
1)所占空間大小相同
DBR與MBR占用相同大小的存儲空間,均為1個扇區(qū)512字節(jié)。
2)結(jié)束標志相同
DBR與MBR的結(jié)束標志都是“55AA”。
2.DBR與MBR的不同點
1)功能不同
MBR的主要功能是存放硬盤分區(qū)信息和引導(dǎo)系統(tǒng)時檢查分區(qū)。DBR則存放的是分區(qū)文件系統(tǒng)參數(shù),同時,設(shè)置為活動分區(qū)的DBR將從MBR引導(dǎo)程序接過引導(dǎo)控制權(quán),以裝載操作系統(tǒng)??梢?,MBR與DBR在系統(tǒng)啟動過程中各有作用。
2)作用范圍和性質(zhì)不同
MBR和虛擬MBR控制著整個硬盤的所有分區(qū)信息,作用范圍是全局性的,其性質(zhì)是基礎(chǔ)性的。DBR則存放著有硬盤分區(qū)的文件系統(tǒng)參數(shù),作用范圍是局部性的,其性質(zhì)屬于應(yīng)用性的。通常MBR或1個虛擬MBR可以定義1~4個不等的分區(qū),而1個DBR只能定義1個分區(qū)的文件系統(tǒng)。
3)創(chuàng)建時間不同
MBR由分區(qū)工具軟件(FDisk、PartitionMagic、Windows2000/XP安裝工具等)劃分硬盤分區(qū)時建立,DBR則由高級格式化軟件(Format等)格式化分區(qū)時創(chuàng)建。因此它們在時間上有先后之分,MBR在前,DBR在后。2.1.3WinHex軟件和DBR修復(fù)技術(shù)
1.WinHex軟件
WinHex是Windows環(huán)境下的十六進制編輯軟件,其物理磁盤編輯器可以編輯物理磁盤或邏輯磁盤的任何一扇區(qū),是維護磁盤的工具軟件。
1)?WinHex軟件的安裝
在Windows環(huán)境下運行WinHex的Setup.exe,即顯示安裝界面,如圖2-1所示。圖2-1WinHex安裝界面在該界面中選定安裝目錄,點擊確定按鈕,按照安裝程序提示一步一步地操作即可完成該軟件的安裝。完成安裝后可從操作系統(tǒng)程序菜單中選擇WinHex軟件,啟動后的界面如圖2-2所示。圖2-2WinHex工作界面
2)?WinHex軟件的操作
(1)磁盤編輯器的設(shè)定。點擊“工具”→“磁盤編輯器”菜單項,彈出的窗口如圖2-3所示。
在磁盤編輯器窗口中可設(shè)定編輯硬盤的方式,WinHex提供了兩種選擇,即邏輯分區(qū)和物理磁盤。在該窗口的上半部分可選擇硬盤邏輯分區(qū),下半部分則可選擇物理磁盤,單擊確認后即可完成設(shè)定。圖2-3磁盤編輯器
(2)查找數(shù)據(jù)。點擊“搜索”→“查找文本”菜單項,彈出“查找文本”窗口,如圖2-4所示。
該窗口的“下列文本字串符將被搜索”下的文本框內(nèi)可輸入需查找的字符串,其下可設(shè)定查找的條件,包括區(qū)分大小寫、Unicode字符查找、通配符模糊查找、完全匹配等,還可以設(shè)定查找的范圍(全部、向下、向上)、條件查找的偏移量位置、塊內(nèi)查找等。本次查找完成后,如果還想繼續(xù)查找,只需按F3鍵。
或者點擊“搜索”→“查找16進制數(shù)值”菜單項,彈出“查找16進制數(shù)值”窗口,如圖2-5所示。圖2-4查找文本圖2-5查找16進制數(shù)值
(3)跳轉(zhuǎn)。點擊“位置”→“轉(zhuǎn)到偏移量”菜單項,彈出“轉(zhuǎn)到偏移量”窗口,如圖2-6所示。
在該窗口的“新位置”框內(nèi)輸入偏移量地址,再點擊確定即可。注:輸入的地址是十六進制還是十進制要根據(jù)WinHex設(shè)置而定。
或者,點擊“位置”→“轉(zhuǎn)到扇區(qū)”菜單項,彈出“轉(zhuǎn)到扇區(qū)”窗口,如圖2-7所示。
圖2-6偏移量跳轉(zhuǎn)圖2-7扇區(qū)跳轉(zhuǎn)在該窗口相應(yīng)的跳轉(zhuǎn)地址框內(nèi)輸入扇區(qū)號,再點擊確定即可。注:輸入的扇區(qū)號是十六進制還是十進制也需要根據(jù)WinHex設(shè)置而定。
根據(jù)偏移量跳轉(zhuǎn)可以達到字節(jié)級的精確定位,而按照扇區(qū)跳轉(zhuǎn)則可進行相對“粗放”的區(qū)域定位,兩種方式各有應(yīng)用。
(4)設(shè)置查看方式。點擊“查看”菜單,彈出的下拉菜單如圖2-8所示。該菜單上有許多顯示的設(shè)置選項和查看工具,用戶可以僅顯示文字或十六進制,自定義顯示信息,選擇模板查看特定扇區(qū)信息等。圖2-8設(shè)置查看方式
(5)?WinHex常規(guī)設(shè)置。點擊“選項”→“常規(guī)”菜單,彈出“常規(guī)選項”窗口,如圖2-9所示。
該窗口包含有眾多的WinHex界面設(shè)置和操作風(fēng)格選項,用戶可以根據(jù)需要進行相應(yīng)設(shè)定。圖2-9WinHex的常規(guī)選項
2.DBR修復(fù)
本章前面介紹過,分區(qū)開始處都有一定數(shù)量的保留扇區(qū)(一般為32個),第1扇區(qū)為DBR扇區(qū),第6扇區(qū)為DBR的備份扇區(qū)。因此,如果由于某種原因?qū)е翫BR扇區(qū)損壞,可利用備份扇區(qū)來修復(fù)DBR。分區(qū)DBR受損后,一般會出現(xiàn)如圖2-10所示的提示信息。圖2-10DBR損壞后提示未格式化下面對DBR進行修復(fù):
(1)啟動WinHex,選擇并進入受損DBR所在的分區(qū),如圖2-11所示。當(dāng)前所在位置就是已損壞的DBR扇區(qū)。
(2)向后跳轉(zhuǎn)6扇區(qū),定位至備份DBR扇區(qū)處,如圖2-12所示。圖2-11損壞的DB圖2-12備份的DBR扇區(qū)
(3)塊選DBR扇區(qū)并復(fù)制。用鼠標右鍵點擊備份扇區(qū)的第1字節(jié)(EB),彈出如圖2-13所示的菜單。選擇“選塊開始”項,再將光標移到備份扇區(qū)的最后一個字節(jié)(AA),點擊鼠標右鍵,在彈出的菜單中選擇“選塊結(jié)尾”項,備份扇區(qū)即被塊選。然后點擊“編輯”→“復(fù)制區(qū)塊”→“正常”菜單項。圖2-13塊選菜單(4)粘貼備份DBR。跳轉(zhuǎn)回分區(qū)DBR扇區(qū)處,將光標定位在第1個字節(jié),點擊“編輯”→“剪貼板數(shù)據(jù)”→“寫入”菜單項,彈出如圖2-14所示的提示對話框。 單擊“是”按鈕,備份數(shù)據(jù)即寫入DBR扇區(qū)。
圖2-14寫入提示對話框該512字節(jié)的數(shù)據(jù)用另一種顏色顯示以示區(qū)別,表示未真正寫入硬盤。單擊工具欄上的“保存扇區(qū)”按鈕,數(shù)據(jù)寫入硬盤,DBR修復(fù)完成。
此外,由于DBR是由高級格式化程序建立的,因此也可以用格式化的方法重建DBR,但分區(qū)上原有的FAT、FDT數(shù)據(jù)將被清除。如果備份DBR也已經(jīng)被破壞,則只能通過手工方法來修復(fù)DBR,這需要一些計算,有興趣者請參考有關(guān)書籍。
2.2FDT和FAT
2.2.1FDT的概念與結(jié)構(gòu)
1.FDT的概念
FDT(FileDirectoryTable)即文件目錄表,由若干個32字節(jié)的表項構(gòu)成,登記著分區(qū)上的目錄、文件和子目錄信息。這些信息包括文件和目錄的名稱、創(chuàng)建日期、屬性、大小、從硬盤何處開始存放(首簇號)等,需要結(jié)合FAT表才能最終確定文件的具體位置。對硬盤分區(qū)實施高級格式化時,格式化工具會自動建立一個根目錄FDT。
2.FDT的構(gòu)成
隨著硬盤存儲容量的快速增加,目前FAT文件系統(tǒng)大量采用FAT32形式,因此我們重點介紹FAT32的FDT結(jié)構(gòu),如表2-3所示。表2-3FAT32的FDT結(jié)構(gòu)表第0B字節(jié)用二進制位定義文件屬性,最高2位未用,如表2-4所示。
稍微復(fù)雜一點的是FAT32系統(tǒng)長文件名的表示。簡單地說,長文件名由一個短文件名登記項(見表2-3)和若干個長文件名登記項組成。長文件名登記項按倒序方式排列在短文件名登記項前,其結(jié)構(gòu)如表2-5所示。表2-4屬性對照表表2-5長文件名的登記項每一個長文件名登記項有26個字節(jié)記錄長文件名稱,表示13個Unicode格式的文件名(每個文件名字符需要2個字節(jié))。順序字節(jié)低5位指明長文件名登記項序號,第6位置“1”表明本登記項是最后一個,如圖2-15所示。圖2-15順序字節(jié)的含義2.2.2FAT的概念與結(jié)構(gòu)
1.FAT的概念
FAT(FileAllocationTable)即文件系統(tǒng)中的文件分配表,實際上就是一張記錄文件存儲位置的表格,文件存儲位置用簇號來表示。文件的首簇號存放在FDT登記項中,后續(xù)簇號存放于FAT。FAT本身由高級格式化程序建立。
2.FAT的構(gòu)成
FAT在DBR之后存放,一個分區(qū)有兩個FAT,第1個是主表,第2個是備份表,兩張表內(nèi)容相同。FAT的大小由分區(qū)大小、每簇扇區(qū)數(shù)等因素決定,它所占用的扇區(qū)數(shù)可以從DBR的BPB參數(shù)中查到。
分區(qū)格式化后,文件以簇為單位存放在數(shù)據(jù)區(qū)中。簇其實是人為指定的容量單位,相當(dāng)于若干個扇區(qū),一個簇可以定義為8、16、32或64個扇區(qū)。一個文件占用一個或多個簇的硬盤空間。在多個簇的情況下,這些簇號不一定連續(xù),但可以通過簇鏈方式表示一個文件在硬盤上“不連續(xù)”存放的情況。關(guān)于簇鏈將在后面詳細講述。
FAT表項的大小決定了分區(qū)容量的上限。例如FAT16分區(qū),每一個表項16位,那么最多可管理216×64×512=216×
32K=2?GB的分區(qū),因此FAT16分區(qū)最多可以使用2?GB的空間。同理,F(xiàn)AT32分區(qū)最多可管理232×64×512=128?TB的分區(qū),但這只是計算出的理論值,實際上由于受到硬盤訪問的限制,目前的單個分區(qū)還不能管理如此大的空間。
FAT文件系統(tǒng)以簇為單位值為文件分配空間,每個簇在FAT表內(nèi)占用一個登記項。FAT16分區(qū)一個登記項的長度是2字節(jié),F(xiàn)AT32分區(qū)一個登記項的長度是4字節(jié)。
FAT的功能主要有如下三個。
1)記錄磁盤類型
FAT前2個簇為保留簇,不分配給文件使用。FAT第0個字節(jié)表示磁介質(zhì)類型,與BPB偏移量15H(磁介質(zhì)描述符)處的值相同,硬盤用F8H表示。
2)記錄文件占用的各簇簇號
以FAT32分區(qū)為例,一個文件創(chuàng)建好后,在FAT表里有一系列的表項值與其對應(yīng),一個FAT表項值表明文件占用的一個簇號并指明下一簇號的位置。文件的起始簇號存放在該文件FDT的第20、21字節(jié)和第26、27字節(jié)。具體來說就是FAT表項值表示一個簇號,其值乘以4就是下一表項位置,如此反復(fù)從而構(gòu)成一個簇鏈,簇鏈可用下式表示:
下一簇號=[當(dāng)前簇號?×?4?+?FAT表起始地址]取值
例如,某文件的起始簇號為000129C4H,則其FAT表項值如圖2-16所示。圖2-16某文件的FAT表項值當(dāng)前簇號000129C4H×4=0004A710H,該值就是下一簇號的存放位置(相對于FAT內(nèi)偏移量,本例FAT表起始地址是00004C00H)。根據(jù)上述公式,第二簇號的存放位置應(yīng)該從0004A710H+00004C00H=0004F310H處查找。在圖2-16中找到偏移量0004F310H的所在位置,從中讀取的4字節(jié)值000129C5H就是文件的下一簇號。依此類推,第三簇號為000129C6H,繼續(xù)下去就可以找到文件的其他后續(xù)簇,直到0FFFFFFFH,表示文件簇鏈結(jié)束。
3)記錄可用簇和壞簇
FAT中用00000000H表示空簇(未分配的硬盤空間),用FFFFFFF7H表示壞簇,它們不能再分配給文件使用。FAT從第2簇開始分配硬盤空間給文件使用。2.2.3FDT與FAT的作用和意義
1.FDT的作用
從FDT的結(jié)構(gòu)分析知,它主要用于保存文件和目錄的基本信息,包括長文件名登記項。其作用體現(xiàn)在下列幾個方面。
1)管理文件
當(dāng)FDT第1字節(jié)的第6位置1時(參見表2-4),它代表一個文件名登記項,記錄該文件的基本信息,包括文件名、擴展名、建立時間、建立日期、首簇號、文件長度等。
2)管理目錄
為了易于使用和管理,文件系統(tǒng)被設(shè)計成樹形結(jié)構(gòu)。所謂樹形結(jié)構(gòu),就是文件系統(tǒng)只有一個總的入口,稱為根目錄,在根目錄下有文件和子目錄。子目錄下用戶可以創(chuàng)建更多的文件和下一層子目錄,依此類推,形成一個類似于樹木形狀的結(jié)構(gòu)系統(tǒng)。
FDT正是通過其第11字節(jié)的設(shè)定值(將第5位置1),使其變身為子目錄登記項。再配合第20、21和第26、27首簇號,告知用戶該目錄的入口地址,完成從根目錄到下一層子目錄的遍歷。同時,子目錄下的FDT登記項中,有一個特殊的目錄登記項,其文件名部分是2E2EH,即“..”,第11字節(jié)屬性值是10H(目錄),首簇號值則指向上一層目錄的入口地址。這樣FDT目錄登記項為文件系統(tǒng)提供了從子目錄向根目錄回溯的功能。因此,F(xiàn)DT使文件系統(tǒng)具備了在根目錄和子目錄間雙向訪問的能力,如圖2-17所示。圖2-17根目錄和子目錄間的雙向訪問圖2-17上半部分表示W(wǎng)indows目錄起始簇號為12H;中間部分是Windows下子目錄Help的FDT登記項;下半部分是子目錄Help中“..”的FDT登記項,起始簇號也為12H,即指向其上層父目錄Windows。注意“.”登記項中簇號是8A6CH,指向Help子目錄本身。
3)管理長文件名
FDT登記項第11字節(jié)置為0FH時,表示該項為長文件名登記項。每一個長文件名登記項可以表示13個雙字節(jié)內(nèi)碼形式的字符,這些登記項按倒序方式排列在文件的短文件登記項之前。
2.FAT的作用
FAT以簇號的方式記錄文件占用空間的情況。一個簇號對應(yīng)一塊數(shù)據(jù)區(qū)空間,一個文件可以申請分配一個或多個簇號。簇號在FAT中可以連續(xù)存放,也可以非連續(xù)存放,這取決于數(shù)據(jù)空閑區(qū)域是否含有碎片(空閑區(qū)域和已占用區(qū)域相互交錯)。FAT巧妙地運用簇號與簇號存放在FAT的偏移地址之間的關(guān)系,解決了簇鏈的表示問題。FAT32分區(qū)FAT地址關(guān)系為下一簇號地址=當(dāng)前簇號×4。FAT和FDT聯(lián)系的紐帶就是FDT登記項中的首簇號。
3.FDT與FAT的意義
由以上分析可知,管理文件和目錄是由FDT、FAT共同合作來完成的。FDT存放文件、目錄的基本信息,F(xiàn)AT則管理存儲空間的分配,二者通過FDT首簇號相關(guān)聯(lián)。2.2.4文件刪除的實質(zhì)分析
一般的計算機用戶認為,刪除文件后,操作系統(tǒng)會清除文件的全部內(nèi)容,包括數(shù)據(jù)區(qū)的數(shù)據(jù)。事實上,操作系統(tǒng)為了保持工作效率,在刪除文件的過程中并不刪除數(shù)據(jù)區(qū)的數(shù)據(jù)(因為相當(dāng)費時),而僅修改、清空FAT、FDT的相關(guān)登記項。Windows操作系統(tǒng)提供了簡單刪除和完全刪除兩種刪除模式,而其回收站能夠還原已被“刪除”的文件。
1.簡單刪除文件的分析
以某硬盤FAT32分區(qū)上的文件Sample-File.txt為例,該文件被簡單刪除前,其FDT登記項如圖2-18所示。圖2-18文件Sample-File.txt被刪除前的FDT登記項
將Sample-File.txt放入回收站,該文件的FDT登記項如圖2-19所示。
圖2-19簡單刪除后文件Sample-File.txt的FDT登記項從圖2-19知,簡單刪除文件后,其FDT登記項首字節(jié)被修改為E5H,長文件名登記項首字節(jié)也同樣被置為E5H。E5H是文件刪除的標記。
文件Sample-File.txt被刪除前的FAT登記項如圖2-20所示。
簡單刪除后,該文件的FAT登記項如圖2-21所示。圖2-20文件Sample-File.txt被刪除前的FAT登記項圖2-21文件Sample-File.txt被刪除后的FAT登記項
由上述對比可看出,簡單刪除前后的FAT相關(guān)表項沒有變化。刪除前存放的文件數(shù)據(jù)區(qū)內(nèi)容如圖2-22所示。
簡單刪除后,該文件的數(shù)據(jù)區(qū)內(nèi)容如圖2-23所示。
綜合所述,簡單刪除文件后,僅把該文件相關(guān)的FDT登記項首字節(jié)修改為E5H,其余都沒有改變。圖2-22文件Sample-File.txt被刪除前的數(shù)據(jù)區(qū)內(nèi)容圖2-23文件Sample-File.txt被刪除后的數(shù)據(jù)區(qū)內(nèi)容
2.完全刪除文件的分析
此處還以文件Sample-File.txt為例,將該文件清空,表示完全刪除該文件。完全刪除該文件前的FDT登記項同圖2-18所示,完全刪除該文件后的FDT登記項同圖2-19所示。
可見,完全刪除文件后,該文件的FDT登記項首字節(jié)也被修改為E5H了,與簡單刪除的情況相同。
完全刪除該文件前的FAT表項如圖2-24所示。圖2-24文件Sample-File.txt完全刪除前的FAT登記項完全刪除該文件后的FAT表項如圖2-25所示。
從圖2-25可知,完全刪除文件后,該文件在FAT中的表項被清零,表示文件系統(tǒng)已經(jīng)釋放出該文件所占用的硬盤空間。
完全刪除前后,存放文件的數(shù)據(jù)區(qū)內(nèi)容均如圖2-26所示,沒有改變。
由此可知,完全刪除文件并沒有在數(shù)據(jù)區(qū)將文件破壞,該刪除操作只是修改了文件的FDT登記項首字節(jié)(標記刪除),清空了FAT與該文件相關(guān)的表項(釋放空間),而真正存放數(shù)據(jù)的區(qū)域并沒有修改。圖2-25文件Sample-File.txt完全刪除后的FAT登記項圖2-26文件Sample-File.txt刪除前后的數(shù)據(jù)區(qū)內(nèi)容2.2.5FAT恢復(fù)
FAT表如果受到破壞,會造成大量數(shù)據(jù)文件丟失。一般情況下,如果FAT2還是完好的,則可以利用DiskEdit和WinHex手動恢復(fù)FAT1。
1.用DiskEdit恢復(fù)FAT
(1)首先定位到受損FAT所在分區(qū)的DBR扇區(qū),查明該分區(qū)FAT所占扇區(qū)數(shù),如圖2-27所示。圖2-27利用DBR確定FAT大小(2)根據(jù)FAT大小跳轉(zhuǎn)到FAT2起始處。本例中FAT的大小為2708H(9992)扇區(qū),考慮到分區(qū)的保留扇區(qū)有20H(32)個,故從DBR處向后跳轉(zhuǎn)10?024扇區(qū)。DBR所在扇區(qū)號為40?965?813,所以應(yīng)定位到第40?975?837扇區(qū),選擇顯示整個FAT2,如圖2-28所示。圖2-28跳轉(zhuǎn)到FAT2
(3)塊選整個FAT2表。將光標置于FAT2第1個字節(jié)后,按Ctrl+B鍵,用鼠標拖動窗口右側(cè)滾動條翻頁至最后一扇區(qū),然后按住Shift鍵的同時單擊鼠標,用方向鍵使最后一扇區(qū)被完全選中。選擇“Tools”→“WriteObjecttoPhysicalSectors”菜單項,彈出的對話框如圖2-29所示。圖2-29復(fù)制FAT2到FAT1(4)由于有9992個扇區(qū)要復(fù)制,而剪貼板的空間有限,故本例采用復(fù)制到物理扇區(qū)的辦法。圖2-29所示對話框提示輸入復(fù)制到的目標CHS地址,這需要進行簡單的計算。FAT1的起始地址為40?965?845(40?965?813+32),是一個LBA地址,將其轉(zhuǎn)化為CHS地址即可。計算過程如下:
C=40?965?845DIV(255×63)=2550
H=(40?965?845DIV63)MOD255=1
S=40?965?845MOD63+1=33
其中255是磁頭數(shù),63是每磁道扇區(qū)數(shù),DIV表示取整運算,MOD表示求余數(shù)。
將得出的CHS參數(shù)填入圖2-29所示對話框中,確定后即可完成扇區(qū)的復(fù)制。
2.用WinHex恢復(fù)FAT
用WinHex恢復(fù)FAT的原理與DiskEdit的相同。
(1)以物理硬盤方式打開WinHex磁盤編輯器,首先查看分區(qū)DBR,確定分區(qū)FAT的大小,如圖2-30所示。圖2-30利用DBR確定FAT的大小
(2)點擊圖2-30中右邊的下拉按鈕,點選分區(qū)下拉菜單,單擊“克隆扇區(qū)(as來源)”菜單項,彈出復(fù)制扇區(qū)的對話框,如圖2-31所示。
(3)由該分區(qū)的DBR參數(shù)可知,F(xiàn)AT表的大小為10000扇區(qū),F(xiàn)AT1和FAT2的起始位置分別為40965845和40975845,填入?yún)?shù)并確定后FAT的復(fù)制即完成。圖2-31復(fù)制FAT2到FAT1
2.3文件、目錄和長文件名
2.3.1根目錄文件管理
這里舉例說明FAT32分區(qū)是如何管理根目錄下文件的。某FAT32分區(qū)根目錄下有若干個文件和子目錄,如圖2-34所示。圖2-32FAT32分區(qū)根目錄文件運行WinHex,以邏輯硬盤方式打開磁盤編輯器(選擇該分區(qū)所在邏輯磁盤),點擊“訪問”按鈕,在其下拉菜單中選擇根目錄。圖2-33列出了根目錄文件Sample-File.txt的FDT登記項。圖2-33根目錄文件的FDT登記項從圖2-33中可以找到相應(yīng)的FDT登記項,分解出建立日期、創(chuàng)建時間和文件大小等數(shù)據(jù)項,如表2-6所示。表2-6文件Sample-File.txt的FDT分析參考表2-3分析。文件的建立日期數(shù)值為3852H,轉(zhuǎn)化為二進制是0011100010010010。前7位二進制0011100表示年份,轉(zhuǎn)化成十進制為28,年份還需加上1980,得出的年份值為28+1980=2008;中間4位二進制0010表示月份,轉(zhuǎn)化成十進制為2;最后5位二進制10010表示日期,用十進制表示就是18。因此該文件的建立日期即為2008年2月18日,與圖2-33文件列表中的數(shù)據(jù)一致。文件的建立時間數(shù)值為55EC15H,轉(zhuǎn)化為二進制為010101011110110000011001。前5位二進制01010表示小時,為10;接著的6位二進制101111(十進制為47)代表分鐘;下面的5位二進制01100(十進制為12)為秒數(shù),是2秒的倍數(shù),這里真實的秒數(shù)為12×2=24;最后8位是以10毫秒為單位的秒數(shù)。該文件的建立時間即為10時47分24秒。
文件大小為FDT登記項的最后4字節(jié),讀取多字節(jié)數(shù)據(jù)前應(yīng)注意低位在前高位在后,讀出數(shù)值為0000A4B5H,轉(zhuǎn)化為十進制就是42165。
FAT32文件首簇號共4個字節(jié),分別放置在FDT登記項的第20、21、26、27字節(jié)。Sample-File.txt首簇號高16位是0003H,低16位是23FAH,首簇號是000323FAH,轉(zhuǎn)化成十進制為205818。在WinHex中點擊訪問按鈕,選擇FAT1菜單,定位到FAT1起始扇區(qū)。Sample-File.txt的下一簇號存放地址=FAT1起址+首簇號×4,計算得4000H+323FAH×4=
CCFE8H,如圖2-34所示。在地址CCFE8H中存放的下一簇號為000323FBH。圖2-34文件Sample-File.txt的FAT登記項依次計算可以得知,本例的Sample-File.txt占用1個簇,加上首簇共2個簇。FAT表用0FFFFFFFH表示簇鏈結(jié)束。在WinHex中點擊菜單“位置”→“轉(zhuǎn)到扇區(qū)”,在彈出的對話框中輸入首簇號205818,如圖2-35所示。
確定后跳轉(zhuǎn)到Sample-File.txt的數(shù)據(jù)區(qū),如圖2-36所示。圖2-35轉(zhuǎn)到文件Sample-File.txt的圖2-36Sample-File.txt的數(shù)據(jù)區(qū)部分綜上所述,文件Sample-File.txt本身存放在數(shù)據(jù)區(qū),F(xiàn)DT登記項記錄文件的基本情況(名稱、屬性、大小、首簇號、建立日期等),F(xiàn)AT表登記項記錄文件在數(shù)據(jù)區(qū)占用空間的情況。因此,F(xiàn)AT32管理文件是通過FDT、FAT、DATA三部分協(xié)同工作共同管理完成的。2.3.2子目錄管理
觀察圖2-37子目錄Part的FDT登記項,發(fā)現(xiàn)該登記項的第11字節(jié)值為10H,查表2-4得知00010000(10H)表示子目錄,同時表示文件大小的最后4個字節(jié)被置零,這是子目錄FDT登記項的兩個特點。采用上節(jié)的方法讀出子目錄首簇號00000D93H(十進制為3475),點擊WinHex的“位置”→“轉(zhuǎn)到扇區(qū)”菜單項,輸入十進制首簇號,跳轉(zhuǎn)到子目錄下文件的FDT登記項,如圖2-38所示。圖2-37子目錄Part圖2-38子目錄下文件的FDT登記項從圖2-38可以查看到Part子目錄下的Part0.par、Part1.par文件登記項和圖2-37所示的一致(由于篇幅所限,其他文件不再顯示)。由于該目錄有被刪除的文件,所以留下很多置E5H的登記項。如果一個簇放不下子目錄文件登記項,那么在FAT表上會有一個簇鏈,用于分配若干個簇存放子目錄文件登記項。
圖2-39中,Part子目錄文件登記項中有名為NewPart的目錄登記項,表明子目錄Part下還有子目錄。FAT32就是通過目錄的一層層嵌套完成子目錄管理的。圖2-39包含子目錄的文件FDT登記項2.3.3長文件名管理
文本文件Sample-XPWindowSV2-Microsoft.txt的FDT登記項如圖2-40所示。圖2-40長文件名的FDT登記項由于文件名超過8個字符,單個FDT登記項容納不下全部文件名,所以FAT32文件系統(tǒng)用多個FDT登記項來記錄長文件名。觀察圖2-40并結(jié)合2.2.1節(jié)的內(nèi)容知,F(xiàn)AT32文件系統(tǒng)做了這樣的安排:長文件名由若干個FDT長文件名登記項(見表2-5)和一個短文件FDT登記項構(gòu)成。本例中,短文件FDT登記項的32個字節(jié)位于文件Sample-XPWindowSV2-
Microsoft.txt后面,如圖2-40所示。短文件FDT登記項記錄文件名前6個字符,再加上~1,其余內(nèi)容和文件FDT一樣。長文件名登記項位于前面,由若干個(本例為3個)32字節(jié)構(gòu)成,每個長文件名登記項記錄13個雙字節(jié)內(nèi)碼形式的文件名,登記項首字節(jié)表示序號,而且長文件名登記項按倒序排列,即第一項在后面,最后一項在最前面。這里要指出,長文件名登記項的首字節(jié)包含了序號和終結(jié)標志兩部分內(nèi)容。由圖2-15可知,當(dāng)首字節(jié)第6位置1時,表示本登記項為最后一個。如本例中,長文件名登記項最后一項首字節(jié)為43H,轉(zhuǎn)化為二進制就是01000011,第6位置1,前5位序號部分值為3,表示長文件名登記項最后一項序號為3,并在最后一項置終結(jié)標記。
FAT32創(chuàng)建長文件名時,形成的短文件名按下面三個原則生成:
(1)取長文件名前6個字符加上“~1”形成短文件名,擴展名不變。
(2)如果文件名已經(jīng)存在,則“~”后的數(shù)字自動增加。
(3)如果遇到非法字符,則以“_”替代。
FAT
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 專項7 語法和病句(原卷版)
- 智慧應(yīng)急響應(yīng)管理平臺解決方案
- 江蘇省徐州市東苑中學(xué)2024-2025學(xué)年八年級下學(xué)期3月月考地理試題(原卷版+解析版)
- 2025屆江蘇省蘇州市決勝新高考高三下學(xué)期2月開學(xué)聯(lián)考地理含答案
- 內(nèi)鏡下注射硬化劑治療乙型肝炎肝硬化并發(fā)食管靜脈曲張破裂出血患者的臨床效果研究
- 安徽省淮南市東部地區(qū)2024-2025學(xué)年七年級上學(xué)期期末考試地理試題(原卷版+解析版)
- 二零二五年度北京市體育俱樂部運動員招募合同范本
- 二零二五年度保健服務(wù)貸款居間服務(wù)與客戶反饋合同
- 房地產(chǎn)項目開發(fā)建設(shè)合同書
- 公司股權(quán)激勵機制設(shè)計指南
- 陽臺裝修合同
- 建筑工程安全管理論文15篇建筑工程安全管理論文
- 基于三菱FX系列PLC的五層電梯控制系統(tǒng)
- 拉拔試驗原始記錄
- 溫室韭菜收割機設(shè)計學(xué)士學(xué)位論文
- 梁平法施工圖鋼筋表示法
- 京東ME的賬號怎么注冊的
- 浙江新聞獎副刊類參評作品推薦表
- 江蘇鴻泰鋼鐵有限公司品種結(jié)構(gòu)調(diào)整煉鋼系統(tǒng)升級項目環(huán)評報告
- 煤層氣開采地面工程設(shè)計方案
- xxx年國企集團公司職工代表大會制度 企業(yè)職工代表大會制度
評論
0/150
提交評論