MBR&/BOOT和GRUB三者关系总结

做了一个大自然的搬运工, 介绍的不错, 备份下

MBR是硬盘上的一个扇区,包含三部分内容(引导程序、分区表及分隔标识,MBR总计512字节;其中引导程序最多占446个字节);为什么需要这个MBR,主要是因为BIOS太小,功能有限。当系统加电,bios自检后,就会将MBR Load进内存。也就意味着引导程序被激活,分区表信息已经加载到内存,同时也意味着对系统的控制权从bios过渡到GRUB.

GRUB是GRand Unified Bootloader的缩写,它是一个多重操作系统启动管理器。用来引导不同系统。GRUB是一个系统引导程序,分为两个阶段

1. 第一阶段它保存在MBR中.用汇编语言编写,也就是MBR中的引导程序部分。

  1. ①基本的硬件设备初始化(屏蔽所有的中断、关闭处理器内部指令/数据cache 等)。
  2. ②为加载 Bootloader 的Stage2 准备空间。
  3. ③如果是从某个固态存储媒质中,则拷贝 Bootloader 的stage2 到RAM 空间中。
  4. ④设置好堆栈。
  5. ⑤跳转到 stage2 的C 程序入口点。

2. GRUB引导程序的第二阶段,通常用C语音编写,这个阶段的任务有:

  1. ①初始化本阶段要使用到的硬件设备。
  2. ②检测系统内存映射。
  3. ③将kernel 映像和根文件系统映像从flash 上读到RAM 空间中。
  4. ④为内核设置启动参数
  5. ⑤调用内核。它通常保存在/boot/grub/中。
  • 当我们启动系统进入GRUB界面时,会看到有选择信息,如果我们自己编译了系统内核的话,你可以选择从某个内核启动。同时要注意的是GRUB的配置文件和内核在/boot分区。从前面分析我们可以看出,/BOOT和MBR不存在包含关系。GRUB第一阶段需要去MBR中去读引导程序,GRUB第二阶段需要到/boot分区读系统内核和配置文件。

你可能感兴趣的:(linux)