硬盤結構簡介:
很久以前, 硬盤的容量還非常小的時候,人們采用與軟盤類似的結構生產硬盤. 也就是硬盤盤片的每一條磁道都具有相同的扇區數. 由此人們定義硬盤參數為(CHS)參數,即磁頭數(Heads),柱面數(Cylinders),扇區數(Sectors),以及相應的尋址方式。
其中:
磁頭數表示硬盤總共有幾個磁頭,也就是有幾面盤片,最大為255 (用8個二進制位存儲);
柱面數表示硬盤每一面盤片上有幾條磁道, 最大為1023(用10個二進制位存儲);
扇區數(Sectors) 表示每一條磁道上有幾個扇區, 最大為63 (用6個二進制位存儲);
每個扇區一般是 512個字節, 理論上講這不是必須的, 但好象沒有取別的值的;
所以磁盤最大容量為:255 * 1023 * 63 * 512 / 1048576 = 8024 GB ( 1M = 1048576 Bytes )
或硬盤廠商常用的單位:255 * 1023 * 63 * 512 / 1000000 = 8414 GB ( 1M = 1000000 Bytes )
在 CHS 尋址方式中, 磁頭, 柱面, 扇區的取值范圍分別為 0 到 Heads – 1,0 到 Cylinders - 1,1 到 Sectors (注意是從 1 開始)
在老式硬盤中,由于每個磁道的扇區數相等,所以外道的記錄密度要遠低于內道,因此會浪費很多磁盤空間 (與軟盤一樣)。為了解決這一問題,進一步提高硬盤容量,人們改用等密度結構生產硬盤。也就是說,外圈磁道的扇區比內圈磁道多。采用這種結構后,硬盤不再具有實際的3D參數,尋址方式也改為線性尋址,即以扇區為單位進行尋址。為了與使用3D尋址的老軟件兼容在硬盤控制器內部安裝了一個地址翻譯器。由它負責將老式3D參數翻譯成新的線性參數。這也是為什么現在硬盤的3D參數可以有多種選擇的原因 (不同的工作模式, 對應不同的3D參數, 如 LBA, LARGE, NORMAL)。
磁盤分區簡介:
BOOTSECTOR簡介
Boot Sector 也就是硬盤的第一個扇區, 它由 MBR (Master Boot Record), DPT (Disk Partition Table) 和 Boot Record ID 三部分組成。MBR 又稱作主引導記錄占用 Boot Sector 的前 446 個字節 ( 0 to 0x1BD ), 存放系統主引導程序 (它負責從活動分區中裝載并運行系統引導程序).
DPT 即主分區表占用 64 個字節 (0x1BE to 0x1FD), 記錄了磁盤的基本分區信息,主分區表分為四個分區項,,每項 16 字節,分別記錄了每個主分區的信息(因此最多可以有四個主分區).Boot Record ID 即引導區標記占用兩個字節 (0x1FE and 0x1FF), 對于合法引導區,它等于 0xAA55,這是判別引導區是否合法的標志。
BOOTSECTOR的具體結構如下圖所示:
Master Boot Record主引導記錄(446字節) | |
分區信息1(16字節) | |
分區信息2(16字節) | |
分區信息3(16字節) | |
分區信息4(16字節) | |
55AA |
BOOTSECTOR結構圖
分區表結構簡介
分區表由四個分區項構成, 每一項長度為16個字節,分區表結構如下圖所示:
分區狀態,0=未激活,0x80=激活(注意此項) | 0 |
分區起始磁頭號 | 1 |
分區起始扇區和柱面號,底字節的低6位為扇區號,高2位為柱面號的第9,10位,高字節為柱面號的低8位 | 2 |
3 | |
分區類型,如0x0B=FAT32,0x83=Linux等,0表示此項未用 | 4 |
分區結束磁頭號 | 5 |
分區結束扇區和柱面號,低字節的低6位為扇區號,高2位為柱面號的第9,10位,高字節為柱面號的低8位 | 6 |
7 | |
在線性尋址方式下的分區相對扇區地址(對于基本分區即為絕對地址) | 8 |
9
|