MBR功能   MBR

 


文章詳見:http://www.bytekits.com/tsingchen/mbr/mbr.html

MBR是主引導記錄,它存在於整個磁盤的最開始的那個扇區,地址爲0號扇區,此扇區一般爲512字節大小。
MBR扇區的內容是:

內容 說明
前446字節 引導程序及參數
中間64字節 分區表
最後2字節 0x55,0xaa

我們可以使用工具winhex軟件打開一個磁盤,查看MBR內容。
圖片詳見:http://www.bytekits.com/tsingchen/mbr/mbr.html

在MBR中存儲的引導程序,爲的是從BISO中接過系統的控件權,即處理器使用權。MBR對應的這512字節在當BISO即將釋放處理器的使用權前,將此512字節複製到物理內存的0x7c00位置處,然後跳轉到此位置執行,這樣BIOS引導完成,進行MBR引導。

MBR程序主流程

程序流程:
1 將程序代碼由0:7C00H移動到0:0600H(注,BIOS把MBR放在0:7C00H處)
2 搜索可引導分區,即80H標誌
成功:goto 3
失敗:跳入ROM BASIC
無效分區表:goto 5
3 讀引導扇區到7C00
失敗:goto 5
成功:goto 4
4 驗證引導扇區最後是否爲55AAH
失敗:goto 5
成功:goto 6
5 打印錯誤進入無窮循環
6 跳到0:7C00H進行下一步啓動工作

分區表內容

分區表總共64字節,分爲四個區,每個區用16個字節描述,詳情如下:
每一個分區表項佔用0x10個字節,其相關的含義如下:

偏移量0:這個字節表示活動標誌,若爲0x00h則表示該分區爲非活動分區,若爲0x08h則表示該分區爲活動分區
偏移量1~3: 這3個字節表示該分區的起始磁頭號(1字節)、扇區號(2字節低6位)、柱面號(2字節高2位+3字節)號
偏移量4:這個字節表示分區文件系統標誌,0x05h,0x0Fh 表示擴展分區;0x06h表示FAT16分區;0x0Bh表示FAT32分區;0x07h表示NTFS 分區(當然有其他的標識)
偏移量5~7:這3個字節表示該分區的結束磁頭號、扇區號、柱面號
偏移量8~11:這4個字節表示邏輯起始扇區號(小端)
偏移量12~15:這4個字節表示分區佔用的扇區數目(小端)

從這裏可以看出,即有CHS的尋址方式,也有LBA的尋址方式所需要的參數。


CPU加電啓動過程

在CPU上電之後,若由硬盤啓動,則BIOS將硬盤的主引導記錄(位於0柱面、0磁道、1扇區)讀入7C00處
然後將控制權交給主引導代碼。主引導代碼的任務包括:

  1. 掃描分區表,找到一個激活(可引導)分區;
  2. 找到激活分區的起始扇區;
  3. 將激活分區的引導扇區裝載到內存7C00處;
  4. 將控制權交給引導扇區代碼;

如果主引導代碼無法完成上述任務,它將顯示以下錯誤信息之一:

  • No active partition.
  • Invalid partition table.
  • Error loading operating system.
  • Missing operating system.

機器加電或按reset鍵後都要進行系統復位,復位後CS=FFFFH,IP=0000H,那麼自然就從FFFF:0000H
處開始執行指令,這個地方只有一條JMP指令跳轉到系統自檢程序處,系統自檢完成後把軟盤的第一
個扇區(如果由軟盤啓動)或者硬盤的第一個扇區,即MBR扇區(如果由硬盤啓動)讀入到0:7C00H處
然後把控制權交出,從0:7C00H處繼續執行。

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