1.磁盤組成:
-
盤片(platter): 一般磁盤會有兩個以上的盤片組成, 每個盤面都對應地有一個讀/寫磁頭.
-
磁頭(head): 磁頭用於向磁盤寫入數據或從磁盤讀出數據.
-
磁道(track): 磁道是對盤面的劃分, 磁道是圍繞盤面圓心的一個個同心圓, 由外向裏編號.
-
扇區(sector): 扇區是對磁道的劃分, 將磁道劃分爲一段一段的弧, 這段弧就是扇區.
-
柱面(cylinder): 由於磁盤由上到下的多個盤片組成, 每個盤片的盤面被劃分爲多個磁道. 盤片由上到下的相同編號的磁道就構成的柱面.
2.磁盤分區:-
磁盤分區單位:
一般來說磁盤是以一個柱面的大小作爲一個分區單位的. -
MBR 分區表:
磁盤的第一個扇區存放者磁盤的分區信息, 分區的實質就是對這個扇區存放的信息進行修改. 對於扇區大小爲 512 Bytes 的磁盤來說, 該扇區主要存放兩部分信息:-
主要開機記錄區: 安裝開機管理程序, 有 446 Bytes.
-
分區表: 記錄整個磁盤的分區狀態, 有 64 Bytes. 分區表每組分區記錄需要佔用 16 Bytes, 所以總共可以有四組分區記錄. 每一組分區記錄記錄了該分區的起始和結束柱面號碼. 這四個分區的記錄被稱爲主要 (Primary) 或延伸 (Extended) 分區.
-
延伸分區:
爲了使硬盤能夠劃分多於四個分區, 可以將其中的一個分區指定爲延伸 (Extended) 分區, 在延伸分區中去劃分邏輯分區 (logical partition). 在延伸分區中使用最前面的幾個扇區來記載分區信息. 延伸分區的目的是使用額外的扇區來記錄分區信息, 延伸分區本身並不能被拿來格式化. -
Linux 分區名稱:
假設現在系統有兩個分區主分區 1 和擴展分區, 在擴展分區上又劃分出了 5 個邏輯分區, 那麼它們在系統的中的名稱爲:P1:/dev/sda1 P2:/dev/sda2 L1:/dev/sda5 L1:/dev/sda6 L1:/dev/sda7 L1:/dev/sda8 L1:/dev/sda9
邏輯分區的設備編號由 5 號開始. 前面 4 個編號都保留給 Primary 或 Extended 使用.
-
-
GPT 分區表:
因爲過去扇區大小爲 512 Bytes, 而現在已經有 4K 的扇區出現了. 爲了兼容, 使用邏輯區塊位址(Logical Block Address, LBA) 來處理. GPT 將磁盤所有區塊以 LBA 進行編號.GPT 使用了 34 個 LBA 區塊來記錄分區信息, 除了前 34 個 LBA 之外, 整個磁盤最後 33 個 LBA 也拿來作爲另一個備份. GPT 解釋說明:
* LBA0 (MBR 相容區塊): 第一部分和之前 446 Bytes 類似, 存儲了開機管理程序; 而在原本的分區表記錄區內, 放入特殊分區的標誌, 表明磁盤採用 GPT 分區表.
* LBA1: 記錄了分區表本身的位置與大小, 同時記錄了備份用的 GPT 分區放置的位置, 同時放置了分區表的檢驗機智碼.
* LBA2-33(實際分區記錄信息處): 每個 LBA 都可以記錄 4 筆分區, 總共可以有 128 筆分區記錄. GPT 在每筆記錄中提供了 64bits 來記載開始/結束的扇區號碼, 單個分區可以達到 8 ZB. -
開機啓動流程:
- BIOS: 開機主動執行的固件, 會認識第一個可開機的設備.
- MBR: 第一個可開機設備的第一個扇區內的主要開機記錄區塊, 內含開機管理程序.
- 開機管理程序(boot loader): 可讀取核心文件來執行的軟件.
- 核心文件: 開始操作系統的功能.
-
開機管理程序:
- 提供菜單: 使用者可以選擇不同的開機項目, 提供多重開機功能.
- 載入核心文件: 直接指向可開機的程序區段來開始操作系統.
- 轉交其它 loader: 將開機管理功能轉交給其它 loader 負責.
-
- 參考:
[1] : 硬盤基本知識
[2] : Hard disk drive
[3] : 鳥哥的Linux私房菜
[4] : 磁盤管理
[5] : Extended boot record