mbr位置:位與0磁道,0磁頭,1扇區。
爲什麼是1扇區呢,因爲扇區的編號是從1開始計算的,mbr就是硬盤的前512字節.0磁道也就是0柱面,0磁道位與硬盤的最磁道,最外磁道的數據比較稀疏,數據可靠性高,所以用來存放關鍵性的代碼。
mbr的作用:系統在啓動進入bios後,首先自檢(post),然後初始化硬件(init),然後掃描硬盤啓動項,掃描到啓動盤後,copy前512字節到內存0x7c00,將控制權交給mbr。這樣系統就開始啓動了。
mbr512字節的組成:一個MBR總共由四個部分組成。
1、主引導程序。負責從活動分區中裝載,並運行系統引導程序。(137字節)
2、數據區。 (309字節)
3、分區表。共64字節爲分區項1、分區項2、分區項3、分區項4。(64字節)
4、結束標誌字,偏移地址01FE--01FF的2個字節值爲結束標誌55AA,如果該標誌錯誤系統就不能啓動。(2字節)
0000-0088 |
Master Boot Record
主引導程序 |
主引導 程序 |
0089-01BD |
出錯信息數據區 |
數據區 |
01BE-01CD |
分區項1(16字節) |
分區表 |
01CE-01DD |
分區項2(16字節) |
|
01DE-01ED |
分區項3(16字節) |
|
01EE-01FD |
分區項4(16字節) |
|
01FE |
55 |
結束標誌 |
01FF |
AA |
程序流程:
1 將程序代碼由0:7C00H移動到0:0600H(注,BIOS把MBR放在0:7C00H處)
2 搜索可引導分區,即80H標誌
成功:goto 3
失敗:跳入ROM BASIC
無效分區表:goto 5
3 讀引導扇區
失敗:goto 5
成功:goto 4
4 驗證引導扇區最後是否爲55AAH
失敗:goto 5
成功:goto 6
5 打印錯誤進入無窮循環
6 跳到0:7C00H進行下一步啓動工作
最後送給大家一個讀取磁盤數據的命令,可以查看硬盤前512字節的數據,供大家深入瞭解mbr
# dd
if=/dev/hda of=mbr.bin bs=512 count=1
# od -xa mbr.bin
dd命令是copy磁盤的命令,if輸入文件,of輸出文件,bs一個塊的大小,count讀取塊的數量
od命令和hexdump命令相似,參數x代表16進制,x1代表用一個字符標識,-t標識顯示的format,A標識基質的format
今天到此爲止,好久不寫博客了,好久不進步了,反省ing。。。。。。。。