因为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启动过程。