【Linux】引導扇區(boot sector)的結構

Boot sector是硬盤(嚴格來說是所有可引導的存儲介質)上的第一個扇區,大小爲512字節,這個扇區對於計算機啓動來說至關重要。
這個小小的512字節包含了很多內容,主要分爲三個部分,分別是:

    MBR(master boot record,主引導記錄)446字節

    DPT(disk partition table,磁盤分區表)64字節
    BRID(boot record ID引導記錄標識)2字節

有很多人把主引導扇區和MBR混爲一談,實際上是不對的。

主引導記錄MBR(446字節)

主引導記錄的作用是安裝基本的引導加載程序(boot loader),在Linux中是grub。這個引導加載程序主要有以下三個功能:

  1.     提供菜單:用戶可以選擇不同的開機選項,這是多重引導的重要功能。
  2.     載入內核文件:直接指向可開機的程序區段來開始操作系統
  3.     轉交其他loader:將引導加載功能轉交給其他loader處理。

轉交其他loader功能在安裝了多個系統的時候非常重要,例如在電腦上安裝了windows和Linux雙系統的時候,開機的時候,Linux的boot loader(grub)會提供菜單讓用戶選擇需要進入的系統(在倒計時界面,按任意鍵即可進入菜單界面),如果用戶選擇的是Windows系統,grub則將控制權轉交給windows的loader,由windows的loader來加載windows內核,啓動windows系統。

    注意:在安裝雙系統的時候,要先安裝windows系統,再安裝Linux系統。因爲Linux在安裝的時候,你可以選擇將boot loader安裝在MBR或各別分區的啓動分區, 而且Linux的loader可以手動配置菜單,所以你可以在Linux的boot loader裏面加入Windows啓動的選項,Windows在安裝的時候,他的安裝程序會主動覆蓋掉MBR以及自己所在分區的啓動扇區,你沒有選擇的機會。當然,如果非要先裝Linux再裝windows也可以,只不過要對MBR進行特別的處理,比較麻煩。
 

磁盤分區表DPT(64字節)

DPT佔用64個字節,每16個字節表示一個分區,這16個字節的含義如下:

由這個表13-16字節可以看出來,每個分區支持的最大的扇區數是2^(4*8),{13~16字節} 個,每個扇區是512字節,因此,每個分區的最大容量爲:
512∗2^32/2^30 (/GB) =2048G  (B)  =2T

再看9~12字節,分區的邏輯地址也是四字節,因此,單個硬盤可利用的最大空間也是2TB。

BRID(引導記錄標識)

BRID的主要作用就是判斷該設備是否可以用於啓動。BIOS按照“啓動順序”,把控制權轉交給排在第一位的儲存設備。這時,計算機讀取該設備的第一個扇區,也就是讀取最前面的512個字節。如果這512個字節的最後兩個字節是0x55和0xAA,表明這個設備可以用於啓動;如果不是,表明設備不能用於啓動,控制權於是被轉交給“啓動順序”中的下一個設備。其實主引導記錄的作用就是告訴計算機到硬盤的哪一個位置去找操作系統。
————————————————
版權聲明:本文爲CSDN博主「Vincent's Blog」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/ww1473345713/article/details/51602825

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章