浅析Linux操作系统之奥秘(GRUB)

2018-10-01  本文已影响28人  明白已晚

GNU GRUB(GRand Unified Bootloader简称“GRUB”)是一个来自GNU项目的多操作系统启动程序(开机管理程序)。
GRUB是多启动规范的实现,它允许用户可以在计算机内同时拥有多个操作系统,并在计算机启动时选择希望运行的操作系统。GRUB可用于选择操作系统分区上的不同内核,也可用于向这些内核传递启动参数。

GRUB文件目录
Linux 下载 /boot/grub


GRUB.png

stage 1

主要负责当BIOS交接给GRUB时,载入存在各分区中的开机文件。stage 1文件大小为512Byte.
stage 1文件其实就是MBR中bootloader的备份文件。前446Byte和MBR是一样的,后面的和MBR没有关系

image.png

stage 1.5

有许多的1.5文件,如e2fs_stage1_5,fat_stage1_5,jfs_stage1_5,reiseifs_stage1_5等等,作用就是连接stage 1和stage2之间的一个信道,里面唯一存放着的是该文件的系统文件的格式。
stage1加载stage1.5后(获得访问目录的能力),e2fs_stage1_5,就可以识ext2文件系统的格式,这是一种非常具有弹性的做法,之后在将stage2加载。

stage 2

这个文件是GRUB 的核心程序,用户以选项的方式将操作系统加载,新增参数,修改选项等。主要存放在各分区的Bootsector中。GRUB在安装的同时便已经将所需要的设置文件位置先写进stage2中,执行时,会从现有的文件系统中,在原来设置的路径下加载设置文件(grub.conf).

用stage 文件(shell 下执行)安装grub
1.执行grub;
2.root(hd0,2);
3.setup(hd0);
4.quit.


image.png
image.png
image.png

1.BIOS将控制权交给硬盘的主引导区,MBR
2.MBR中的bootloader通过内置的地址加载stage1.5
3.bootloader通过stage1.5内容,将分区中的stage2加载
4.stage2此时就可以加载grub.conf,让用户看到选项画面

上一篇下一篇

猜你喜欢

热点阅读