今天在學習《鳥哥的Linux私房菜》時,鳥哥講到了磁盤結構,看得我雲里霧里的。索性網上搜索,看到一篇比較好的博文,主要是圖例比較精准,結合文字描述很快就搞明白了。
這里講的主要是網上所謂的老式磁盤,它是由一個個盤片組成的,我們先從個盤片結構講起。如圖1所示,圖中的一圈圈灰色同心圓為一條條磁道,從圓心向外畫直線,可以將磁道划分為若干個弧段,每個磁道上一個弧段被稱之為一個扇區(圖踐綠色部分)。扇區是磁盤的最小組成單元,通常是512字節。
圖1 老式磁盤一個盤片的結構
圖2展示了由一個個盤片組成的磁盤立體結構,一個盤片上下兩面都是可讀寫的,圖中藍色部分叫柱面(cylinder)。
圖2 老式磁盤的整體結構
簡簡單介紹了磁盤結構后,下面我們將對磁盤的參數進行講解。磁盤的常見參數如下:
- 磁頭(head)
- 磁道(track)
- 柱面(cylinder)
- 扇區(sector)
- 圓盤(platter)
圖2中磁盤是一個 3個圓盤6個磁頭,7個柱面(每個盤片7個磁道) 的磁盤,圖2中每條磁道有12個扇區,所以此磁盤的容量為6*7*12*512字節。
即:
存儲容量 = 磁頭數 × 磁道(柱面)數 × 每道扇區數 × 每扇區字節數
下面講一下現代磁盤,在老式磁盤中,盡管磁道周長不同,但每個磁道上的扇區數是相等的,越往圓心扇區弧段越短,但其存儲密度越高。不過這種方式顯然比較浪費空間,因此現代磁盤則改為等密度結構,這意味着外圍磁道上的扇區數量要大於內圈的磁道,尋址方式也改為以扇區為單位的線性尋址。為了兼容老式的3D尋址方式,現代磁盤控制器中都有一個地址翻譯器將 3D 尋址參數翻譯為線性參數。
圖3 一張Linux的分區表
如圖3所示,在Linux中是以柱面為單位來分區的。這里分區大小除以Blocks數的值約1024說明,在磁盤上讀寫時的最小單位是1024字節----這是我猜的。
參考資源:
http://home.51.com/sky511314520/diary/item/10019498.html
http://blog.csdn.net/csu_whm/archive/2009/09/14/4550429.aspx
http://book.51cto.com/art/201012/238190.htm