filex的檔案系統看的雲裡霧裡,還是先總結下FAT的一些基本知識吧。
硬碟結構
硬碟有很多碟片組成,每個碟片的每個面都有一個讀寫磁頭。如果有N個碟片。就有2N個面,對應2N個磁頭(Heads),從0、1、2開始編號。每個碟片的半徑均為固定值R的同心圓再邏輯上形成了一個以電機主軸為軸的柱面(Cylinders),從外至裡編號為0、1、2……。每個碟片上的每個磁軌又被劃分為幾十個扇區(Sector),通常的容量是512byte,並按照一定規則編號為1、2、3……形成Cylinders×Heads×Sector個扇區。
主開機磁區
主開機磁區位於整個硬碟的0柱面0磁頭1扇區{(柱面,磁頭,扇區)|(0,0,1)},bios在執行自己固有的程式以後就會jump到MBR中的第一條指令。將系統的控制權交由mbr來執行。主開機磁區主要由三部分組成:主引導記錄 MBR(Master Boot Record或者Main Boot Record)、硬碟分區表 DPT(Disk Partition Table)和結束標誌字三大部分組成。
對於硬碟而言,一個扇區可能的位元組數為128×2n (n=0,1,2,3)。大多情況下,取n=2,即一個扇區(sector)的大小為512位元組。在總共512byte的主引導記錄中,MBR的引導程式佔了其中的前446個位元組(位移0H~位移1BDH),隨後的64個位元組(位移1BEH~位移1FDH)為DPT(Disk PartitionTable,硬碟分區表),最後的兩個位元組“55 AA”(位移1FEH~位移1FFH)是分區有效結束標誌。
主引導記錄MBR(master boot record)
主引導記錄中包含了硬碟的一系列參數和一段引導程式。其中的硬碟引導程式的主要作用是檢查分區表是否正確並且在系統硬體完成自檢以後引導具有啟用標誌的分區上的作業系統,並將控制權交給啟動程式。MBR是由分區程式(如Fdisk)所產生的,它不依賴任何作業系統,而且硬碟引導程式也是可以改變的,從而能夠實現多系統引導。
硬碟分區表DPT(Disk Partition Table)
硬碟分區表佔據MBR扇區的64個位元組(位移01BEH--位移01FDH),可以對四個分區的資訊進行描述,其中每個分區的資訊佔據16個位元組。具體每個位元組的定義可以參見硬碟分區結構資訊。
結束標誌字
結束標誌字55,AA(位移1FEH- 位移1FFH)是MBR扇區的最後兩個位元組,是檢驗主引導記錄是否有效標誌。
電腦啟動過程
- BIOS 加電自檢 ( Power On Self Test -- POST )。BIOS執行記憶體位址為 FFFF:0000H 處的跳轉指令,跳轉到固化在ROM中的自檢程式處,對系統硬體(包括記憶體)進行檢查。
- 讀取主引導記錄(MBR)扇區。當BIOS檢查到硬體正常並與 CMOS 中的設定相符後,按照 CMOS 中對啟動裝置的設定順序檢測可用的啟動裝置。BIOS將相應啟動裝置的第一個扇區(也就是MBR扇區)讀入記憶體位址為0000:7C00H 處。
- 檢查0000:7DFEH-0000:7DFFH(MBR的結束標誌位)是否等於 AA55H,若不等於則轉去嘗試其他啟動裝置,如果沒有啟動裝置滿足要求則顯示"NO ROM BASIC"然後死機。
- 當檢測到有啟動裝置滿足要求後,BIOS將控制權交給相應啟動裝置。啟動裝置的MBR將自己複製到0000:0600H處, 然後繼續執行。
- 在主要磁碟分割表中搜尋標誌為活動的分區,也就是檢驗磁碟分割表DPT的首位元組是不是80H。如果檢測到80H,則表示該分區為使用中的磁碟分割,將該使用中的磁碟分割的第一個扇區(作業系統引導記錄區,Dos Boot Recorder,DBR)讀入記憶體位址 0000:7C00H 處。
- 檢查0000:7DFEH-0000:7DFFH(DBR的結束標誌位)是否等於 AA55H, 若不等於則顯示 : "Missing Operating System" 然後停止。
- 當檢測到有分區滿足要求後,MBR將控制權交給相應的使用中的磁碟分割。
for short:
BIOS -> 硬碟MBR -> 使用中的磁碟分割DBR -> 作業系統
主開機磁區與硬碟分區
從主開機磁區的結構可以知道,它僅僅包含一個64個位元組的硬碟分區表。由於每個分區資訊需要16個位元組,所以對於採用MBR型分區結構的硬碟(其磁碟卷標類型為MS-DOS),最多隻能識別4個主要分區。所以對於一個採用此種分區結構的硬碟來說,想要得到4個以上的主要分區是不可能的。這裡就需要引出擴充分區了。擴充分區也是Primary partition的一種,但它與主要磁碟分割的不同在於可以劃分為無數個邏輯分區。
擴充分區中邏輯磁碟機的引導記錄是鏈式的。每一個邏輯分區都有一個和MBR的分區表結構類似的擴充引導記錄(EBR),其分區表的第一項指向該邏輯分區本身的開機磁區,第二項指向下一個邏輯磁碟機的EBR。對於Windows系統而言,一般都是只劃分一個主要磁碟分割給系統,剩餘的部分全部劃為擴充分區。
藍色是主要磁碟分割;綠、紅、紫是邏輯分區;灰色包含著邏輯分區是擴充分區;
擴充分區表項的內容 |
| 擴充分區表項 |
分區表項的內容 |
| 第一個項 |
包括資料的開始地址在內的與擴充分區中當前邏輯磁碟機有關的資訊 |
| 第二個項 |
有關擴充分區中的下一個邏輯磁碟機的資訊,包括包含下一個邏輯磁碟機的EBR的扇區的地址。如果不存在進一步的邏輯磁碟機的話,該欄位不會被使用 |
| 第三個項 |
未用 |
| 第四個項 |
未用 |
reference:
http://zh.wikipedia.org/zh-cn/%E4%B8%BB%E5%BC%95%E5%AF%BC%E6%89%87%E5%8C%BA
www.raid-recovery.org/Article/sjhfdoc/200404/1.html
www.pcguide.com/ref/hdd/file/structPartitions-c.html
www.msexchange.org/tutorials/Disk-Geometry.html