硬盤物理結構
以下三張圖片都是磁盤的實物圖,一個磁盤是由多塊堆放的瓷片組成的,所以磁頭的結構也是堆疊的,他要對每一塊瓷片進行讀取,磁頭是可以在不同磁道(在瓷片的表現為不同直徑的同心圓,磁道間是有間隔的)之間移動的,來完成不同磁道之間的數據讀取,同一磁道不同扇區的數據通過馬達帶動扇區的轉動來讀取。
磁道 扇區和柱面
磁道(Track):
每個盤面被劃分成許多同心圓,這些同心圓軌跡叫做磁道;磁道從外向內從0開始順序編號。
扇區(Sector):
將一個盤面劃分為若干內角相同的扇形,這樣盤面上的每個磁道就被分為若干段圓弧,每段圓弧叫做一個扇區。每個扇區中的數據作為一個單元同時讀出或寫入。硬盤的第一個扇區,叫做引導扇區。
在老式硬盤中,盡管磁道周長不同,但每個磁道上的扇區數是相等的,越往圓心扇區弧段越短,但其存儲密度越高。不過這種方式顯然比較浪費空間,因此現代硬盤則改為等密度結構,這意味著外圍磁道上的扇區數量要大于內圈的磁道,尋址方式也改為以扇區為單位的線性尋址。為了兼容老式的 3D 尋址方式,現代硬盤控制器中都有一個地址翻譯器將 3D 尋址參數翻譯為線性參數。
為了對扇區進行查找和管理,需要對扇區進行編號,扇區的編號從0磁道開始,起始扇區為1扇區,其后為2扇區、3扇區……,0磁道的扇區編號結束后,1磁道的起始扇區累計編號,直到最后一個磁道的最后一個扇區(n扇區)。例如,某個硬盤有1024個磁道,每個磁道劃分為63個扇區,則0磁道的扇區號為1~63,1磁道的起始扇區號為64最后一個磁道的最后一個扇區號為64512。硬盤在進行扇區編號時與軟盤有一些區別,在軟盤的一個磁道中,扇區號一次編排,即1、2、3……n扇區。由于硬盤的轉速較高,磁頭在完成某個扇區數據的讀寫后,必須將數據傳輸到微機,這需要一個時間,但是這時硬盤在繼續高速旋轉,當數據傳輸完成后,磁頭讀寫第二個扇區時,磁盤已經旋轉到了另外一個扇區。因此在早期硬盤中,扇區號是按照某個間隔系數跳躍編排的。
柱面(Cylinder):
所有盤面上的同一磁道構成一個圓柱,稱作柱面。數據的讀/寫按柱面從外向內進行,而不是按盤面進行。定位時,首先確定柱面,再確定盤面,然后確定扇區。之后所有磁頭一起定位到指定柱面,再旋轉盤面使指定扇區位于磁頭之下。寫數據時,當前柱面的當前磁道寫滿后,開始在當前柱面的下一個磁道寫入,只有當前柱面全部寫滿后,才將磁頭移動到下一個柱面。在對硬盤分區時,各個分區也是以柱面為單位劃分的,即從什么柱面到什么柱面;不存在一個柱面同屬于多個分區。
磁道與柱面都是表示不同半徑的圓,在許多場合, 磁道和柱面可以互換使用。
主引導扇區
主引導扇區位于硬盤的0磁道0柱面1扇區,共512bytes,由三大部分組成:
硬盤主引導記錄MBR(Master Boot Record)占446bytes
分區表DPT(Disk Partition Table)占64bytes
硬盤有效標志(Magic Number)占2bytes。
結束標志
扇區最后兩個字節“55AA”是MBR的結束標志。
主分區擴展分區 邏輯分區
硬盤分區有三種,主磁盤分區、擴展磁盤分區、邏輯分區。
一個硬盤主分區至少有1個,最多4個,擴展分區可以沒有,最多 1個。且主分區+擴展分區總共不能超過4個。邏輯分區可以有若干個。
在linux中第一塊硬盤分區為sda分區,主分區編號為sda1-4,邏輯分區從5開始。
硬盤的容量=主分區的容量+擴展分區的容量
擴展分區的容量=各個邏輯分區的容量之和
主分區也可成為“引導分區”,會被操作系統和主板認定為這個硬盤的第一個分區。所以C盤永遠都是排在所有磁盤分區的第一的位置上。