分區表
MBR磁碟分區是使用最廣泛的一種分區結構,它也被稱為DOS分區,但它並不是一個僅僅套用於微軟的作業系統平台中的分區結構。Linux系統、 x86架構的UNIX系統都能夠支持MBR磁碟分區。
偏移1BEH—偏移1FDH的64位元組為DPT(Disk Partition Table,硬碟分區表),這是MBR中非常重要的一個結構。
分區表的作用
分區表是用來管理硬碟的分區的,如果分區表被清除或者破壞,則硬碟的分區就會丟失。
分區表分析
為了便於用戶對磁碟的管理,作業系統引入了磁碟分區的概念,即將一塊磁碟邏輯劃分為幾個區域。在分區表的64位元組中,以16位元組為一個分區表項來描述一個分區的結構。一塊硬碟最多可以有4個主磁碟分區,被激活的主磁碟分區被稱為主分區,主分區在一個硬碟中只能一個 。
每個分區表項中相對應的各個位元組的含義都是一樣的,
位元組偏移 | 位元組長度 | 值 | 欄位名和含義 |
0x01BE | 1位元組 | 0x80 | 引導標識,80H為活動分區,00H非活動分區 |
0x01BF | 1位元組 | 0x01 | 開始磁頭數 |
0x01C0 | 6位 | 0x01 | 起始扇區數 |
0x01C1 | 10位 | 0x00 | 起始柱面數 |
0x01C2 | 1位元組 | 0x07 | 分區類型描述,07H為NTFS分區類型 |
0x01C3 | 1位元組 | 0xFE | 結束磁頭數 |
0x01C4 | 6位 | 0xFF | 結束扇區數 |
0x01C5 | 10位 | 0xFF | 結束柱面數 |
0x01C6 | 4位元組 | 0x0000003F | 本分區之前使用的扇區數;保留扇區數 |
0x01CA | 4位元組 | 0x01388AFC | 分區的總扇區數 |
(1) 分區表項的第一個位元組為分區的引導標誌,只能是00H和80H。80H為可引導的活動分區,00H為不可引導的非活動分區。其餘值對Microsoft而言為非法值。
(2) 在重複非常重要的一點:大於1位元組的數值被以低位元組在前的存儲格式順序保存下來。
(3) “本分區之前使用的扇區數”就是該分區的相對起始扇區號,是以LBA值來表示的,這個值也可以稱為隱藏扇區數。
(4) 系統在分區時,各分區都不允許跨柱面,即均以柱面為單位,這就是通常所說的分區粒度,有時分區時輸入分區的大小為7000MB,結果分出來卻是6997MB,就是這個原因。
(5) 分區表項的第三和第四個位元組的扇區和柱面參數中,扇區占6位,柱面占10位,以“起始扇區號”為例,其低6位用作扇區數據的二進制表示,高兩位用做柱面數10位中的高兩位,由此可知,實際上用這種方式表示的分區容量是有限的,柱面和磁頭從0開始編號,扇區從1開始編號,所以最多只能表示1024個柱面*63個扇區*256個磁頭*512Byte=8455716864Byte,
(6) 雖然現在的系統均採用線性定址的方式來處理分區的大小,但不可跨柱面的原則依然沒變,本分區的扇區總數加上與前一分區之前的保留扇區數目依然必須是柱面容量的整數倍。
(7) 偏移01C2H處表示該分區的類型,它是作業系統管理分區、組織分區的方式。