1. 程式人生 > >與磁盤第一塊扇區有關的:分區與開機流程

與磁盤第一塊扇區有關的:分區與開機流程

font bsp 整合 inux 不同 對待 兩個 bytes 能夠

  • 引入:

在linux系統中,每個設備都被當成一個文件來對待。

幾乎所有硬件設備都在/dev這個目錄下。

需要掌握的是磁盤的設備文件名:IDE接口的為/dev/hd[a-d],SATA的為/dev/sd[a-p]。

那麽分區後的設備文件名呢?

  • 磁盤的第一個扇區

  • 磁盤數據的寫入在盤片上,盤片的單位是扇區(512bytes),整塊磁盤的第一個扇區最重要,它記錄了兩個重要的信息:

1.主引導分區(MBR):稍後談,446B

2.分區表:記錄硬盤分區狀態,64B。

  • 將硬盤的柱面標號,每個分區分配一段連續的柱面。
  • 64B的分區表劃為4個部分(僅有4個喲),每個部分16B,記錄四段【起始柱面號碼與結束柱面號碼】。四個部分中最多有3個主分區,一個拓展分區。
  • 所謂的“分區”操作實際上只是針對分區表進行設置。主分區表記錄的是主分區的柱面信息,拓展分區表記錄的是邏輯分區的柱面信息。拓展分區表所占空間大小是64B減去主分區表大小。

e.g.假設現在給一塊IDE磁盤/dev/hda分區,決定分為2個主分區(primary),4個邏輯分區(logical)。

第一個扇區的64B分區表可以分為:16B主分區 1、16B主分區2、32B拓展分區。

主分區1記錄的主分區1對應文件名/dev/hda1,主分區2記錄的主分區2對應文件名/dev/hda2,拓展分區記錄的邏輯分區1對應文件名/dev/hda5,拓展分區記錄的邏輯分區2對應文件名/dev/hda6,拓展分區記錄的邏輯分區3對應文件名/dev/hda7,拓展分區記錄的邏輯分區4對應文件名/dev/hda8.

  • 邏輯分區個數有上限,IDE59;SATA11。
  • 分區完成後,只能夠再整合邏輯分區內的兩個或多個分區,不能將主分區與邏輯分區整合。
  • 每個分區都有自己的啟動分區。

  • 開機流程(較第一篇隨筆中提及的詳細點的):

  • BIOS讀完CMOS裏的參數後,開始找硬盤(或是其他存儲設備),找到後,讀取第一個扇區的446B的MBR。BIOS結束工作。
  • MBR內存儲著基本引導加載程序Boot loade(CentOS的引導加載程序是grub軟件)r。引導加載程序開始工作。引導加載程序在安裝操作系統時獲得。
  • MBR的引導加載程序可以提供多個菜單,例如:菜單一:直接加載XX內核文件,菜單二:將引導加載工作交給XX分區的啟動扇區,菜單三:將引導加載工作交給XX分區的啟動扇區。(XX內填什麽,在安裝操作系統時設置)。
    菜單一必不可少,如果只有菜單一,就直接加載內核。
  • 多個內核文件必須放在不同的分區中。

與磁盤第一塊扇區有關的:分區與開機流程