MBR与grub

boot sector和MBR
boot sector就是引导块,可存在于硬盘,光盘,软驱,TF卡上。
MBR就是主引导加载程序(Master Boot Recorder),它可以位于硬盘(光盘,软驱)的第一个扇区。与它相对的就是次引导加载程序。
主分区:硬盘最多有四个主分区,其中之一可以设置为活动分区,一个硬盘上只有一个活动分区。
MBR分扫描硬盘分区信息,并且它会从活动分区中引导。其中主分区信息放在了MBR的中,由于MBR只有512个字节。
扩展分区也叫逻辑分区。
MBR主引导记录最开头是第一阶段引导代码。其中的硬盘引导程序的主要作用是检查分区表是否正确并且在系统硬件完成自检以后将控制权交给硬盘上的引导程序(如GNU GRUB)。MBR是由分区程序(如Fdisk)所产生的,它不依赖任何操作系统,而且硬盘引导程序也是可以改变的,从而能够实现多系统引导。

主引导扇区的读取流程
系统开机或者重启。

1    BIOS 加电自检 ( Power On Self Test -- POST )。BIOS执行内存地址为 FFFF:0000H 处的跳转指令,跳转到固化在ROM中的自检程序处,对系统硬件(包括内存)进行检查。
2    读取主引导记录(MBR)。当BIOS检查到硬件正常并与 CMOS 中的设置相符后,按照 CMOS 中对启动设备的设置顺序检测可用的启动设备。BIOS将相应启动设备的第一个扇区(也就是MBR扇区)读入内存地址为0000:7C00H 处。
3    检查0000:7DFEH-0000:7DFFH(MBR的结束标志位)是否等于55AAH,若不等于则转去尝试其他启动设备,如果没有启动设备满足要求则显示"NO ROM BASIC"然后死机。
4    当检测到有启动设备满足要求后,BIOS将控制权交给相应启动设备。启动设备的MBR将自己复制到0000:0600H处, 然后继续执行。
5    根据MBR中的引导代码启动引导程序。

MBR与GRUB
当安装GRUB时,GRUB.mbr会写到硬盘的第一个扇区。这样GRUB可以让我们选择哪一个操作系统。
bios ----->MBR [它可以是GRUB.MBR或是dos的MBR]
A情况 当MBR是GRUB.MBR,无windows,只有linux时
bios--->MBR[grub.stage1]---->start[硬盘上的第二个扇区,与grub.stage1相邻]--->stage1.5[加载硬盘上的文件系统]--->stage2--->linux.

B情况 先安装windows再安装linux,grub不是MBR,但windows.MBR可以识别linux所在的分区。windows所在的分区是活动分区,linux所在的分区不是活动分区,但是主分区。
bios--->MbR[windows.MBR]--->操作系统选择项--->选择linux--->读linux所在分区的第一扇区[grub.stage1]--->start--->stage1.5--->stage2--->操作系统选择项--->选择windows--->读取windows所在分区的第一扇区[windows.MBR]--->回到第二阶段。这样就可以如是循环下去。


你可能感兴趣的:(MBR与grub)