本文檔介紹磁盤MBR相關概念和引導操做系統流程。 ide
MBR(Main Boot Record),是位於磁盤最前面的一段引導代碼,存在於整個磁盤最開始的那個扇區,即0盤0道1扇區(該處用CHS方式表示MBR引導扇區地址,所以以1開始),它負責操做系統對磁盤進行讀寫時的分區合法性的判別、分區引導信息的定位,它由操做系統在對磁盤進行格式化的過程當中產生的。 spa
一般,咱們把包含MBR引導代碼的分區稱爲主引導扇區,該扇區不屬於磁盤上的任何分區,於是分區空間內的格式化命令不能清除主引導記錄的任何信息。主引導扇區MBR由如圖 2.1所示的4個部分組成。 操作系統
圖 2.1 MBR結構圖 內存
MBR中64字節的分區表由4個分區項組成,它由磁盤介質類型和用戶在使用fdisk定義分區時肯定的。在SylixOS中,對SD卡劃分的主分區可少於4個,但最多不超過4個。每一個分區表項爲16字節,其內容含義如圖 2.2所示。 文檔
圖 2.2分區表項含義說明 it
主引導程序(偏移地址0000H—0088H):負責從活動分區中裝載並運行系統引導程序; class
出錯信息數據區:偏移地址0089H—00E1H爲出錯信息,00E2H—01BDH全爲0; 程序
分區表:分爲4個分區項,偏移地址01BEH—01FDH,每一個分區表項長16字節,共64字節; im
結束標誌字:偏移地址01FEH—01FFH的2個字節爲結束標誌55AA,若是該標誌錯誤則系統不能啓動。 數據
當MBR拿處處理器的使用權後,MBR中的主引導程序須要在主分區中查找到活動分區,並加載其中的系統引導程序,這樣就將處理器的控制權交給操做系統了。
要完成該過程,MBR首先就要找到主分區中的活動分區,參考圖 2.2說明,MBR結構中的分區表項的第一個字節爲引導標誌,若該字節值爲80H,則表示該分區爲活動分區,若爲00H,則爲非活動分區。
下面以一張格式化爲FAT32分區的SD卡爲例,分析其分區表項的含義,如圖 2.3所示。
圖 2.3分區表項舉例
當主引導程序尋找到活動分區後,將CPU的控制權交給此分區的引導程序——系統內核加載器。爲了讓MBR更方便找到內核加載器,內核加載器的入口地址一般在固定的位置,即活動分區的最開始的扇區,該扇區就被稱做操做系統引導扇區,該扇區中的內核加載器即爲操做系統的引導記錄OBR(OS BOOT Record),因此操做系統引導扇區又被稱做OBR扇區,它包括一個引導程序和一個被稱爲BPB的本分區參數記錄表。
引導程序的主要任務是判斷本分區根目錄前兩個文件是否爲操做系統的引導文件,若是是,就把第一個文件讀入內存,並把控制權交予文件;BPB參數這塊記錄着本分區的起始扇區、結束扇區、文件存儲格式、硬盤介質描述符、根目錄大小、FAT個數、分配單元的大小等重要參數。
此後,整個CPU的控制權就徹底交給操做系統,MBR的引導任務也完成了。
一、《操做系統真相還原》