因為BIOS很小,功能有限,為了完成加載操作系統的功能,就產生了mbr!
主引導記錄MBR
硬盤的0柱面、0磁頭、1扇區稱為主引導記錄MBR(Master Boot Record)
它由三個部分組成,主引導程序(boot loader)、硬盤分區表DPT(Disk Partition table)和硬盤有效標志(55AA)。
在總共512字節的主引導扇區里主引導程序占446個字節,第二部分是Partition table區(分區表),即DPT,占64個字節,硬盤中分區有多少以及每一分區的大小都記在其中。第三部分是magic number,占2個字節,固定為55AA。 !!!!!!!!!!!!!!!!!!!!!
一般將MBR分為廣義和狹義兩種:
廣義的MBR包含整個扇區(引導程序、分區表及分隔標識),也就是上面所說的主引導記錄;而狹義的MBR僅指引導程序而言。
主引導程序(boot loader)
主引導程序(boot loader)是直接寫入第一個扇區的前446個字節,如grub是直接寫進mbr硬盤的主引導記錄中的,計算機BIOS 在啟動時,按照預定的方式,將mbr內的代碼加載至內存指定位置, 然后跳轉至那里,mbr的代碼就開始運行了!
如果將grub寫入mbr,bios就引導grub; 將winxp的引導代碼寫入mbr,bios就引導ntldr; 將dos的引導代碼寫入mbr,bios就引導dos。(裝雙系統時先裝win,再裝ubuntu,發現開機變成ubuntu的引導界面,就是因為ubuntu把win安裝在第一個扇區的主引導程序覆蓋了)
grub,ntldr等他們最終實現的功能是一樣的,都是將引導代碼加載 至 內存指定位置,並運行。
另外,mbr是獨立於操作系統的,地位與分區表同級,所以,格式化任何分區內都影響不到他, 包括ghost備份,還原。
bios檢測到一個硬盤后,將硬盤的0柱面、0磁頭、1扇區的內容經過簡單判斷后,讀取至內存中的指定位置,然后跳轉至這個位置,開始從這個位置運行。具體引導過程見MBR和EFI啟動過程。