(1)MBR區(qū)
MBR(Main Boot Record),按其字面上的理解即為主引導(dǎo)記錄區(qū),位于整個硬盤的0磁道0柱面1扇區(qū)。不過,在總共512字節(jié)的主引導(dǎo)扇區(qū)中,MBR只占用了其中的446個字節(jié)(偏移0--偏移1BDH),另外的64個字節(jié)(偏移1BEH--偏移1FDH)交給了DPT(Disk Partition Table硬盤分區(qū)表)(見下表),最后兩個字節(jié)"55,AA"(偏移1FEH- 偏移1FFH)是分區(qū)的結(jié)束標(biāo)志。這個整體構(gòu)成了硬盤的主引導(dǎo)扇區(qū)。大致的結(jié)構(gòu)如圖5:
圖5
主引導(dǎo)記錄中包含了硬盤的一系列參數(shù)和一段引導(dǎo)程序。其中的硬盤引導(dǎo)程序的主要作用是檢查分區(qū)表是否正確并且在系統(tǒng)硬件完成自檢以后引導(dǎo)具有激活標(biāo)志的分區(qū)上的操作系統(tǒng),并將控制權(quán)交給啟動程序。MBR是由分區(qū)程序(如Fdisk.com)所產(chǎn)生的,它不依賴任何操作系統(tǒng),而且硬盤引導(dǎo)程序也是可以改變的,從而實現(xiàn)多系統(tǒng)共存。
下面,我們以一個實例讓大家更直觀地來了解主引導(dǎo)記錄:
例:80 01 01 00 0B FE BF FC 3F 00 00 00 7E 86 BB 00
在這里我們可以看到,最前面的"80"是一個分區(qū)的激活標(biāo)志,表示系統(tǒng)可引導(dǎo);"01 01 00"表示分區(qū)開始的磁頭號為01,開始的扇區(qū)號為01,開始的柱面號為00;"0B"表示分區(qū)的系統(tǒng)類型是FAT32,其他比較常用的有04(FAT16)、07(NTFS);"FE BF FC"表示分區(qū)結(jié)束的磁頭號為254,分區(qū)結(jié)束的扇區(qū)號為63、分區(qū)結(jié)束的柱面號為764;"3F 00 00 00"表示首扇區(qū)的相對扇區(qū)號為63;"7E 86 BB 00"表示總扇區(qū)數(shù)為12289622。
(2)DBR區(qū)
DBR(Dos Boot Record)是操作系統(tǒng)引導(dǎo)記錄區(qū)的意思。它通常位于硬盤的0磁道1柱面1扇區(qū),是操作系統(tǒng)可以直接訪問的第一個扇區(qū),它包括一個引導(dǎo)程序和一個被稱為BPB(Bios Parameter Block)的本分區(qū)參數(shù)記錄表。引導(dǎo)程序的主要任務(wù)是當(dāng)MBR將系統(tǒng)控制權(quán)交給它時,判斷本分區(qū)跟目錄前兩個文件是不是操作系統(tǒng)的引導(dǎo)文件(以DOS為例,即是Io.sys和Msdos.sys)。如果確定存在,就把其讀入內(nèi)存,并把控制權(quán) 交給該文件。BPB參數(shù)塊記錄著本分區(qū)的起始扇區(qū)、結(jié)束扇區(qū)、文件存儲格式、硬盤介質(zhì)描述符、根目錄大小、FAT個數(shù),分配單元的大小等重要參數(shù)。
(3)FAT區(qū)
在DBR之后的是我們比較熟悉的FAT(File Allocation Table文件分配表)區(qū)。在解釋文件分配表的概念之前,我們先來談?wù)劥兀╟luster)的概念。文件占用磁盤空間時,基本單位不是字節(jié)而是簇。簇的大小與磁盤的規(guī)格有關(guān),一般情況下,軟盤每簇是1個扇區(qū),硬盤每簇的扇區(qū)數(shù)與硬盤的總?cè)萘看笮∮嘘P(guān),可能是4、8、16、32、64……
通過上文我們已經(jīng)知道,同一個文件的數(shù)據(jù)并不一定完整地存放在磁盤的一個連續(xù)的區(qū)域內(nèi),而往往會分成若干段,像一條鏈子一樣存放。這種存儲方式稱為文件的鏈?zhǔn)酱鎯?。(見圖6)硬盤上的文件常常要進(jìn)行創(chuàng)建、刪除、增長、縮短等操作。這樣操作做的越多,盤上的文件就可能被分得越零碎(每段至少是1簇)。但是,由于硬盤上保存著段與段之間的連接信息(即FAT),操作系統(tǒng)在讀取文件時,總是能夠準(zhǔn)確地找到各段的位置并正確讀出。不過,這種以簇為單位的存儲法也是有其缺陷的。這主要表現(xiàn)在對空間的利用上。每個文件的最后一簇都有可能有未被完全利用的空間(稱為尾簇空間)。一般來說,當(dāng)文件個數(shù)比較多時,平均每個文件要浪費(fèi)半個簇的空間。
圖6
好了,我們言歸正傳,為了實現(xiàn)文件的鏈?zhǔn)酱鎯Γ脖P上必須準(zhǔn)確地記錄哪些簇已經(jīng)被文件占用,還必須為每個已經(jīng)占用的簇指明存儲后繼內(nèi)容的下一個簇的簇號,對一個文件的最后一簇,則要指明本簇?zé)o后繼簇。這些都是由FAT表來保存的,表中有很多表項,每項記錄一個簇的信息。
由于FAT對于文件管理的重要性,所以FAT有一個備份,即在原FAT的后面再建一個同樣的FAT。初形成的FAT中所有項都標(biāo)明為"未占用",但如果磁盤有局部損壞,那么格式化程序會檢測出損壞的簇,在相應(yīng)的項中標(biāo)為"壞簇",以后存文件時就不會再使用這個簇了。FAT的項數(shù)與硬盤上的總簇數(shù)相當(dāng),每一項占用的字節(jié)數(shù)也要與總簇數(shù)相適應(yīng),因為其中需要存放簇號。FAT的格式有多種,最為常見和為讀者所熟悉的是FAT16和FAT32,其中FAT16是指文件分配表使用16位數(shù)字,由于16位分配表最多能管理65536(即2的16次方)個簇,也就是所規(guī)定的一個硬盤分區(qū)。
由于每個簇的存儲空間最大只有32KB,所以在使用FAT16管理硬盤時,每個分區(qū)的最大存儲容量只有(65536×32 KB)即2048MB,也就是我們常說的2G?,F(xiàn)在的硬盤容量是越來越大,由于FAT16對硬盤分區(qū)的容量限制,所以當(dāng)硬盤容量超過2G之后,用戶只能將硬盤劃分成多個2G的分區(qū)后才能正常使用,為此微軟公司從Windows 95 OSR2版本開始使用FAT32標(biāo)準(zhǔn),即使用32位的文件分配表來管理硬盤文件,這樣系統(tǒng)就能為文件分配多達(dá)4294967296(即2的32次方)個簇,所以在簇同樣為32KB時每個分區(qū)容量最大可達(dá)65G以上。此外使用FAT32管理硬盤時,每個邏輯盤中的簇長度也比使用FAT16標(biāo)準(zhǔn)管理的同等容量邏輯盤小很多。由于文件存儲在硬盤上占用的磁盤空間以簇為最小單位,所以某一文件即使只有幾十個字節(jié)也必須占用整個簇,因此邏輯盤的簇單位容量越小越能合理利用存儲空間。所以FAT32更適于大硬盤。
(4)DIR區(qū)
DIR(Directory)是根目錄區(qū),緊接著第二FAT表(即備份的FAT表)之后,記錄著根目錄下每個文件(目錄)的起始單元,文件的屬性等。定位文件位置時,操作系統(tǒng)根據(jù)DIR中的起始單元,結(jié)合FAT表就可以知道文件在硬盤中的具體位置和大小了。
(5)數(shù)據(jù)(DATA)區(qū)
數(shù)據(jù)區(qū)是真正意義上的數(shù)據(jù)存儲的地方,位于DIR區(qū)之后,占據(jù)硬盤上的大部分?jǐn)?shù)據(jù)空間。
聯(lián)系客服