硬碟是現在電腦上最常用的儲存空間。我們都知道,電腦之所以神奇,是因為它具有高速分析處理資料的 能力。而這些資料都被以檔案的形式儲存在硬碟裡。不過,電腦可不像人那麼聰明。在讀取相應的檔案時,你必須要給出它相應的規則。這就是分區概念的形成。 分區從實質上說就是對硬碟的一種格式化。當我們建立分區時,就已經設定好了硬碟的各項物理參數,指定了硬碟主引導記錄(即 MasterBootRecord,一般簡稱為MBR)和引導記錄備份的存放位置。而對於檔案系統以及其他動作系統管理硬碟所需要的資訊則是通過之後的高 級格式化,即Format命令來實現。
硬體分區後,將會被劃分為面、磁軌和扇區。需要注意的是,這些只是個虛擬概念,並不是真正在硬碟 上劃道子^_^。先從面說起,硬碟一般是由一片或幾片圓形薄膜疊加而成。我們所說,每個圓形薄膜都有兩個"面"(Side),這兩個面都是用來儲存資料 的。按照面的多少,依次稱為0面、1面、2面……由於每個面都專有一個讀寫磁頭,也常用0頭(head)、1頭……稱之。按照硬碟容量和規格的不同,硬碟 面數(或頭數)也不一定相同,少的只有2面,多的可達數十面。各面上磁軌號相同的磁軌合起來,稱為一個柱面(cylinder)(見圖1)。
圖1
上面我們提到了磁軌的概念。那麼究竟何為磁軌呢?大家都知道,讀 寫硬碟時,磁頭依靠磁碟的高速旋轉引起的空氣動力效應懸浮在盤面上,與盤面的距離不到1微米(約為頭髮直徑的百分之一)。由於磁碟是旋轉的,則連續寫入的 資料是排列在一個圓周上的。我們稱這樣的圓周為一個磁軌(Track)。(見圖2)如果讀寫磁頭沿著圓形薄膜的半徑方向移動一段距離,以後寫入的資料又排 列在另外一個磁軌上。
圖2
根據硬碟規格的不同,磁軌數可以從幾百到數千不等;一個磁軌上可以容納數 KB的資料,而主機讀寫時往往並不需要一次讀寫那麼多,於是,磁軌又被劃分成若干段,每段稱為一個扇區(Sector)。一個扇區一般存放512位元組的數 據。扇區也需要編號,同一磁軌中的扇區,分別稱為1扇區,2扇區。。。。這裡需要注意的是,硬碟在劃分扇區時,和一般的磁碟片有一定的區別。磁碟片的一個磁軌 中,扇區號依次編排,即2號與1號相鄰,3號與2號相鄰,以此類推。而在硬碟的一個磁軌中,扇區號是按照某個間隔跳躍著編排的。我們舉一個例子來說明:在 某個硬碟上,以實際儲存位置而論,2號扇區並不是1號扇區後的第一個,而是第5個,3號扇區又是2號扇區後的第5個,以此類推。這個"5"就是我們說的交 叉因子。(見圖3)當然,這個交叉因子的設定並不是絕對的,每個種類的硬碟為根據自身的情況加以變化。選擇適當的交叉因子,可使硬碟讀寫扇區的速度 與硬碟的旋轉速度相匹配,提高儲存資料的速度。
圖3
電腦對硬碟的讀寫,處於效率的考慮,是以扇區為基本單位的。即使電腦 只需要硬碟上儲存的某個位元組,也必須一次把這個位元組所在的扇區中的512位元組全部讀入記憶體,再使用所需的那個位元組。不過,在上文中我們也提到,硬碟上面、 磁軌、扇區的劃分表面上是看不到任何痕迹的,雖然磁頭可以根據某個磁軌的應有半徑來對準這個磁軌,但怎樣才能在首尾相連的一圈扇區中找出所需要的某一扇區 呢?原來,每個扇區並不僅僅是由512個位元組組成的,在這些由電腦存取的資料的前、後兩端,都另有一些特定的資料,這些資料構成了扇區的界限標誌,標誌 中含有扇區的編號和其他資訊。電腦就憑藉著這些標誌來識別扇區(見圖4)。
在上文中,我們談了資料在硬碟中的儲存的一般原理。為了能更深入的瞭解硬碟,我們還必須對硬碟的資料結構有個簡單的瞭解。硬碟上的資料按照其不同的特點和作用大致可分為5部分:MBR區、DBR區、FAT區、DIR區和DATA區。我們來分別介紹一下:
(1)MBR區
MBR (Main Boot Record),按其字面上的理解即為主引導記錄區,位於整個硬碟的0磁軌0柱面1扇區。不過,在總共512位元組的主開機磁區中,MBR只佔用了其中的 446個位元組(位移0--位移1BDH),另外的64個位元組(位移1BEH--位移1FDH)交給了DPT(Disk Partition Table硬碟分區表)(見下表),最後兩個位元組"55,AA"(位移1FEH- 位移1FFH)是分區的結束標誌。這個整體構成了硬碟的主開機磁區。大致的結構5:
圖5
主引導記錄中包含了硬碟的一系列參數和一段引導程式。其中的硬碟引導程式的主要作用是檢查分區表是否 正確並且在系統硬體完成自檢以後引導具有啟用標誌的分區上的作業系統,並將控制權交給啟動程式。MBR是由分區程式(如Fdisk.com)所產生的,它 不依賴任何作業系統,而且硬碟引導程式也是可以改變的,從而實現多系統共存。
| 位移 |
長度 |
所表達的意義 |
| 0 |
位元組 |
分區狀態:如0-->非使用中的磁碟分割 80--> 使用中的磁碟分割 |
| 1 |
位元組 |
該分區起始頭(HEAD) |
| 2 |
字 |
該分區起始扇區和起始柱面 |
| 4 |
位元組 |
該分區類型:如82--> Linux Native分區 83--> Linux Swap 分區 |
| 5 |
位元組 |
該分區終止頭(HEAD) |
| 6 |
字 |
該分區終止扇區和終止柱面 |
| 8 |
雙字 |
該分區起始絕對分區 |
| C |
雙字 |
該分區扇區數 |
下面,我們以一個執行個體讓大家更直觀地來瞭解主引導記錄:
例:80 01 01 00 0B FE BF FC 3F 00 00 00 7E 86 BB 00
在 這裡我們可以看到,最前面的"80"是一個分區的啟用標誌,表示系統可引導;"01 01 00"表示分區開始的磁頭號為01,開始的扇區號為01,開始的柱面號為00;"0B"表示分區的系統類別型是FAT32,其他比較常用的有04 (FAT16)、07(NTFS);"FE BF FC"表示分區結束的磁頭號為254,分區結束的扇區號為63、分區結束的柱面號為764;"3F 00 00 00"表示首扇區的相對扇區號為63;"7E 86 BB 00"表示總扇區數為12289622。
(2)DBR區
DBR (Dos Boot Record)是作業系統引導記錄區的意思。它通常位於硬碟的0磁軌1柱面1扇區,是作業系統可以直接存取的第一個扇區,它包括一個引導程式和一個被稱為 BPB(Bios Parameter Block)的本分區參數記錄表。引導程式的主要任務是當MBR將系統控制權交給它時,判斷本分區跟目錄前兩個檔案是不是作業系統的引導檔案(以DOS為 例,即是Io.sys和Msdos.sys)。如果確定存在,就把其讀入記憶體,並把控制權 交給該檔案。BPB參數區塊記錄著本分區的起始扇區、結束扇區、檔案儲存體格式、硬碟介質描述符、根目錄大小、FAT個數,配置單位的大小等重要參數。
(3)FAT區
在DBR 之後的是我們比較熟悉的FAT(File Allocation Table檔案配置表)區。在解釋檔案配置表的概念之前,我們先來談談簇(cluster)的概念。檔案佔用磁碟空間時,基本單位不是位元組而是簇。簇的大 小與磁碟的規格有關,一般情況下,磁碟片每簇是1個扇區,硬碟每簇的扇區數與硬碟的總容量大小有關,可能是4、8、16、32、64……
通 過上文我們已經知道,同一個檔案的資料並不一定完整地存放在磁碟的一個連續的地區內,而往往會分成若干段,像一條鏈子一樣存放。這種儲存方式稱為檔案的鏈 式儲存。(見圖6)硬碟上的檔案常常要進行建立、刪除、增長、縮短等操作。這樣操作做的越多,盤上的檔案就可能被分得越零碎(每段至少是1簇)。但是,由 於硬碟上儲存著段與段之間的串連資訊(即FAT),作業系統在讀取檔案時,總是能夠準確地找到各段的位置並正確讀出。不過,這種以簇為單位的儲存法也是有 其缺陷的。這主要表現在對空間的利用上。每個檔案的最後一簇都有可能有未被完全利用的空間(稱為尾簇空間)。一般來說,當檔案個數比較多時,平均每個檔案 要浪費半個簇的空間。
圖6
好了,我們言歸正傳,為了實現檔案的鏈式儲存,硬碟上必須準確地記錄哪些簇已經被檔案佔用,還必須為每個已經佔用的簇指明儲存後繼內容的下一個簇的簇號,對一個檔案的最後一簇,則要指明本簇無後繼簇。這些都是由FAT表來儲存的,表中有很多表項,每項記錄一個簇的資訊。
由 於FAT對於檔案管理的重要性,所以FAT有一個備份,即在原FAT的後面再建一個同樣的FAT。初形成的FAT中所有項都標明為"未佔用",但如果磁碟 有局部損壞,那麼格式化程式會檢測出損壞的簇,在相應的項中標為"壞簇",以後存檔案時就不會再使用這個簇了。FAT的項數與硬碟上的總簇數相當,每一項 佔用的位元組數也要與總簇數相適應,因為其中需要存放簇號。FAT的格式有多種,最為常見和為讀者所熟悉的是FAT16和FAT32,其中FAT16是指文 件分配表使用16位元字,由於16位分配表最多能管理65536(即2的16次方)個簇,也就是所規定的一個硬碟分區。
由於每個簇的儲存 空間最大隻有32KB,所以在使用FAT16管理硬碟時,每個分區的最大儲存容量只有(65536×32 KB)即2048MB,也就是我們常說的2G。現在的硬碟容量是越來越大,由於FAT16對硬碟分區的容量限制,所以當硬碟容量超過2G之後,使用者只能將 硬碟劃分成多個2G的分區後才能正常使用,為此微軟公司從Windows 95 OSR2版本開始使用FAT32標準,即使用32位的檔案配置表來管理硬碟檔案,這樣系統就能為檔案分配多達4294967296(即2的32次方)個 簇,所以在簇同樣為32KB時每個分區容量最大可達65G以上。此外使用FAT32管理硬碟時,每個邏輯盤中的簇長度也比使用FAT16標準管理的同等容 量邏輯盤小很多。由於檔案儲存體在硬碟上佔用的磁碟空間以簇為最小單位,所以某一檔案即使只有幾十個位元組也必須佔用整個簇,因此邏輯盤的簇單位容量越小越能 合理利用儲存空間。所以FAT32更適於大硬碟。
(4)DIR區
DIR(Directory)是根目錄區,緊接著第二FAT表(即備份的FAT表)之後,記錄著根目錄下每個檔案(目錄)的起始單元,檔案的屬性等。定位檔案位置時,作業系統根據DIR中的起始單元,結合FAT表就可以知道檔案在硬碟中的具體位置和大小了。
(5)資料(DATA)區
資料區是真正意義上的資料存放區的地方,位於DIR區之後,佔據硬碟上的大部分資料空間。