1. 程式人生 > >mbr,gpt,開機啟動流程

mbr,gpt,開機啟動流程

啟動流程

SystemV

Systemd

  1.載入 BIOS 的硬體資訊與進行自我測試,並依據設定取得第一個可開機的裝置;
  2.讀取並執行第一個開機裝置內 MBR 的 boot Loader (亦即是 grub2, spfdisk 等程式);
    依據 boot loader 的設定載入 Kernel ,Kernel 會開始偵測硬體與載入驅動程式;
    在硬體驅動成功後,Kernel 會主動呼叫 systemd 程式,並以 default.target 流程開機;
        systemd 執行 sysinit.target 初始化系統及 basic.target 準備作業系統;
        systemd 啟動 multi-user.target 下的本機與伺服器服務;
        systemd 執行 multi-user.target 下的 /etc/rc.d/rc.local 檔案;
        systemd 執行 multi-user.target 下的 getty.target 及登入服務;
        systemd 執行 graphical 需要的服務

MBR:

    全稱為Master Boot Record,中文:主引導記錄,在0柱面0磁頭1扇區,大小為512位元組,這個區域

被分為三部分:

1)前446個位元組:這裡存放引導載入程式(Boot Loader),如grub2等,

2)中間64個位元組:這個區域被稱為分割槽表(Partition table),記錄4組分割槽資訊,每16位元組一組,每組分割槽

資訊包含:分割槽狀態(啟用,未啟用)、分割槽型別、起止柱面號、起磁頭號、起扇區號、定址方式(線性定址方式和分割槽相對扇區地址)、分割槽總扇區數目(4個位元組)等內容,這四組分割槽資訊,稱為主分割槽(Primary)或者擴充套件分割槽(Extended).

注意:每組分割槽中包含4個位元組的總扇區數:2^32,這裡的總扇區數目指的是這塊硬碟的總扇區數目,而不是指這個主分割槽裡的總扇區數目,轉化為TB,2^32*512/1024/1024/1024/1024=2TB,即mbr不支援

硬碟容量大於2TB以上的硬碟.

3)最後2個位元組:固定為55AA,佔2位元組如果這個標識被破壞,即便磁碟正常分割槽也會被認為這塊磁碟是一塊全新的沒有被分割槽的盤

  • 主要分割與擴充套件分配最多可以有四個(硬碟的限制)

  • 擴充套件分配最多隻能有一個(作業系統的限制)

  • 邏輯分割是由擴充套件分配持續切割出來的分割槽;

  • 能夠被格式化後,作為資料存取的分割槽為主要分割與邏輯分割。擴充套件分配無法格式化;

  • 邏輯分割的數量依作業系統而不同,在Linux系統中,IDE硬碟最多有59個邏輯分割(5號到63號),SATA硬碟則有11個邏輯分割(5號到15號)。

wKiom1g5QuCj7y6IAAC2Recepp4458.png

Boot Loader的作用:

  • 提供選單:使用者可以選擇不同的啟動專案,這也是多重啟動的重要功能!

  • 載入核心檔案:直接指向可啟動的程式區段來開始作業系統;

  • 轉交其他loader:將啟動管理功能轉交給其他loader負責。

什麼是擴充套件分割槽?

   所謂擴充套件分割槽,嚴格地講它不是一個實際意義的分割槽,它僅僅是一個指向下一個分割槽的指標,這種指標結構將形成一個單向連結串列。這樣在主引導扇區中除了主分割槽外,僅需要儲存一個被稱為擴充套件分割槽的分割槽資料,通過這個擴充套件分割槽的資料可以找到下一個分割槽(實際上也就是下一個邏輯磁碟)的起始位置,以此起始位置類推可以找到所有的分割槽。無論系統中建立多少個邏輯磁碟,在主引導扇區中通過一個擴充套件分割槽的引數就可以逐個找到每一個邏輯磁碟

擴充套件分割槽結構:擴充套件引導記錄(EBR)+ 邏輯分割槽

  注:擴充套件分割槽中的每個邏輯驅動器都存在一個類似於MBR的擴充套件引導記錄( Extended Boot Record, EBR)

擴充套件引導記錄(EBR):類似於MBR的擴充套件引導記錄,擴充套件引導記錄包括一個擴充套件分割槽表和該扇區的標籤.

   擴充套件引導記錄將記錄只包含擴充套件分割槽中每個邏輯驅動器的第一個柱面的第一面的資訊,但是,如果磁碟上沒有擴充套件分割槽,那麼就不會有擴充套件引導記錄和邏輯驅動器。

EBR結構:

   邏輯分割槽前扇區,如擴充套件分割槽0號扇區(512bytes)

    前446bytes:未使用,全為0;

擴充套件分割槽表(64bytes):記錄分割槽狀態,每16bytes分為一個項,共四個項。

    第一項:指向它自身的引導扇區;

    第二項:指向下一個邏輯驅動器的EBR

        注:如果不存在進一步的邏輯驅動器,第二項不會使用,且被記錄成一系列零。

    第三項:未使用

    第四項:未使用

結束標識(2bytes): 55AA ,有效性標識;55AA為有效

wKiom1g5TOuTJch1AABgvl0D2l8382.jpg