硬盤邏輯結構 & Boot Sector 結構

一. 硬盤邏輯結構簡介

 1. 硬盤參數釋疑

  到目前爲止, 人們常說的硬盤參數還是古老的 CHS(Cylinder/Head/Sector)參數. 那麼爲什麼要使用這些參數,它們的意義是什麼?它們的取值範圍是什麼?
  很久以前, 硬盤的容量還非常小的時候,人們採用與軟盤類似的結構生產硬盤. 也就是硬盤盤片的每一條磁道都具有相同的扇區數.由此產生了所謂的3D參數 (Disk Geometry). 既磁頭數(Heads), 柱面數(Cylinders),扇區數(Sectors),以及相應的尋址方式.
  其中:
  磁頭數(Heads)表示硬盤總共有幾個磁頭,也就是有幾面盤片, 最大爲 255 (用 8 個二進制位存儲);
  柱面數(Cylinders) 表示硬盤每一面盤片上有幾條磁道,最大爲 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 開始).

 2. 基本 Int 13H 調用簡介
BIOS Int 13H 調用是 BIOS提供的磁盤基本輸入輸出中斷調用, 它可以完成磁盤(包括硬盤和軟盤)的復位, 讀寫, 校驗, 定位, 診斷,格式化等功能.它使用的就是 CHS 尋址方式, 因此最大識能訪問 8 GB 左右的硬盤 (本文中如不作特殊說明, 均以 1M = 1048576 字節爲單位).

 3. 現代硬盤結構簡介
  在老式硬盤中, 由於每個磁道的扇區數相等,所以外道的記錄密度要遠低於內道, 因此會浪費很多磁盤空間 (與軟盤一樣). 爲了解決這一問題,進一步提高硬盤容量, 人們改用等密度結構生產硬盤. 也就是說,外圈磁道的扇區比內圈磁道多. 採用這種結構後, 硬盤不再具有實際的3D參數,尋址方式也改爲線性尋址, 即以扇區爲單位進行尋址.
爲了與使用3D尋址的老軟件兼容 (如使用BIOSInt13H接口的軟件), 在硬盤控制器內部安裝了一個地址翻譯器,由它負責將老式3D參數翻譯成新的線性參數. 這也是爲什麼現在硬盤的3D參數可以有多種選擇的原因(不同的工作模式, 對應不同的3D參數, 如LBA, LARGE, NORMAL).

 4. 擴展 Int 13H 簡介
雖然現代硬盤都已經採用了線性尋址, 但是由於基本 Int13H 的制約, 使用 BIOS Int 13H 接口的程序, 如 DOS 等還只能訪問 8 G以內的硬盤空間.爲了打破這一限制, Microsoft 等幾家公司制定了擴展 Int 13H 標準(Extended Int13H), 採用線性尋址方式存取硬盤, 所以突破了 8 G的限制,而且還加入了對可拆卸介質 (如活動硬盤) 的支持.


二. Boot Sector 結構簡介

1. Boot Sector 的組成

  Boot Sector 也就是硬盤的第一個扇區, 它由 MBR (MasterBoot 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 and0x1FF), 對於合法引導區, 它等於 0xAA55, 這是判別引導區是否合法的標誌.
  Boot Sector 的具體結構如下圖所示:

   0000 |   ---------------------------------------------        |
      |                        |
      |                        |
      |      Master Boot Record          |
      |                        |
      |                        |
      |      主引導記錄(446字節)        |
      |                        |
      |                        |
      |                        |
   01BD |                        |
   01BE |------------------------------------------------------|
      |                        |
   01CD |      分區信息 1(16字節)        |
   01CE |------------------------------------------------------|
      |                        |
   01DD |      分區信息 2(16字節)        |
   01DE |------------------------------------------------------|
      |                        |
   01ED |      分區信息 3(16字節)        |
   01EE |------------------------------------------------------|
      |                        |
   01FD |      分區信息 4(16字節)        |
      |------------------------------------------------------|
      | 01FE        |01FF            |
      |    55      |     AA       |
      |------------------------------------------------------|

2. 分區表結構簡介

  分區表由四個分區項構成, 每一項的結構如下:
  BYTE State   : 分區狀態, 0 =未激活, 0x80 = 激活 (注意此項)
  BYTE StartHead : 分區起始磁頭號
  WORD StartSC  : 分區起始扇區和柱面號,底字節的低6位爲扇區號,
           高2位爲柱面號的第 9,10 位, 高字節爲柱面號的低 8 位
  BYTE Type    : 分區類型, 如0x0B = FAT32, 0x83 = Linux 等,
           00 表示此項未用,07 = NTFS
  BYTE EndHead  : 分區結束磁頭號
  WORD EndSC   :分區結束扇區和柱面號, 定義同前
  DWORD Relative :在線性尋址方式下的分區相對扇區地址
           (對於基本分區即爲絕對地址)
  DWORD Sectors  : 分區大小 (總扇區數)

  注意: 在 DOS / Windows 系統下,基本分區必須以柱面爲單位劃分( Sectors * Heads 個扇區), 如對於 CHS 爲764/255/63 的硬盤,分區的最小尺寸爲 255 * 63 * 512 / 1048576 = 7.844 MB.

 3. 擴展分區簡介

  由於主分區表中只能分四個分區, 無法滿足需求,因此設計了一種擴展分區格式. 基本上說, 擴展分區的信息是以鏈表形式存放的,但也有一些特別的地方.首先, 主分區表中要有一個基本擴展分區項,所有擴展分區都隸屬於它,也就是說其他所有擴展分區的空間都必須包括在這個基本擴展分區中.對於DOS / Windows 來說, 擴展分區的類型爲 0x05. 除基本擴展分區以外的其他所有擴展分區則以鏈表的形式級聯存放, 後一個擴展分區的數據項記錄在前一個擴展分區的分區表中,但兩個擴展分區的空間並不重疊.
  擴展分區類似於一個完整的硬盤, 必須進一步分區才能使用.但每個擴展分區中只能存在一個其他分區. 此分區在DOS/Windows環境中即爲邏輯盤.因此每一個擴展分區的分區表(同樣存儲在擴展分區的第一個扇區中)中最多只能有兩個分區數據項(包括下一個擴展分區的數據項).

發佈了2 篇原創文章 · 獲贊 0 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章