Grub的概述
创始人
2024-06-02 11:51:44
0

从《计算机是如何启动的?》一文知道,按下开机键后,程序员能控制的第一个程序并不是内核,而是引导器程序。 GNU GRUB是的最灵活的、功能最强大的、加载速度最快的、最精炼的引导器。除了GRUB,还有NT loader, OS/2 loader, DOS MBR loader, PQ BOOT, System Commander, Lilo等引导器

硬盘的主引导扇区(MBR)

当BIOS设置完成,硬件驱动成功及硬件检测都没问题之后,其将加载操作系统的主控权转交给硬盘的主引导扇区(Master Boot Record,MBR),也就是硬盘第零轨.让MBR中的开机管理程序可以将指针带到系统核心的地方。

  •  Bootloader是MBR用来存储开机管理程序的位置.
  •  Partition Table就是存储硬盘分区表的地方,总大小为64Bytes,硬盘中分区多上及每一分区的大小都记录在其中。
  •  Magic Number处被填入固定之“55AA”,并没有特殊用途,只是让存在于bootloader区的管理程序在辨认扇区时可确认MBR的位置。

但请注意,可存在Bootloader中的管理程序可以是任意程序,甚至可以是“简单的跳转到其他程序”的程序。但在Linux中,一般是Grub套件。

Bootloader开机时的功能主要是“加载扇区”和“加载kernel”

加载扇区

MBR将硬盘分为好几个分区,如何分区记录在Partition Table中。分区分由扇区组成,第一个扇区便被称为引导扇区(boot sector). 

 也可以把Bootloader管理程序放在 boot sector中。

加载kernel

因为因为实际中可能一台计算机装有多个操作系统,引导程序(GRUB)可以直接通config信息,找到某一个分区中指定的kernel文件进行加载。

何为GRUB

GRUB是一个强悍的开机管理程序,支持多重开机管理。/boot/gurb目录可看到几个系统文件,主要是stage1,stage1_5,stage2三个文件,这3个文件同时表示GRUB开机时的三个阶段。

stage1

stage1就是写入Bootloader中的开机管理程序。可以使用“grub-install”命令安装到MRB中。

如果stage1坏了,使用 rescue Mode 进入grub-shell

root  (hd0,0)      指定boot分区在hd(0,0)即在第一个硬盘的第一个分区

setup  ( hd0 )    指定安装地点(hd0),因为MBR不属于任何的分区,所以安装在第一个硬盘上,即(hd0)

stage1.5

stage1.5可以识别不同类型的文件系统。比如加载e2fs_stage1_5以后,就可以识别ext2格式。当stage1.5加载后,就赋予GRUB访问文件系统目录的权力,也就是说在开始找不到stage2,可以从文件系统中找到stage2的位置。stage1.5的程序,会被“grub-install”加载到MRB后的32K(即MBR后的27个扇区中),因此stage1步骤中,可直接加载stage1.5。

如果stage1.5坏了,使用 rescue Mode 进入grub-shell

dd    if=/dev/zero    of=/dev/sda    bs=1         count=13824  skip=512 seek=512    跳过MBR的512个字节破坏grub1.5阶段的13824个字节

后面步骤同stage1一样

stage2

stage2是GRUB最核心程序,操作系统的加载,新增参数,修改选项。由于stage1.5被加载,stage1可直接找到并加载stage2,放在各个分区的Boot Sector中。

如果stage2坏了,补全文件

GRUB2的介绍


GRUB2采用了模块化设计,使得GRUB2核心更加精炼,使用更加灵活,同时也就不需要像 GRUB那样分为stage1,stage1_5,stage2这样三个阶段了。GRUB2主要镜像文件:

  • boot.img: 相当与 GRUB 的 stage1 它被写入 MBR或 boot分区,它不能识别任何文件系统
  • cdboot.img:当从CD引导情况下被写入内核镜像第一个扇区到内容,它负责加载其余的内核镜像到内存。
  • diskboot.img:当从磁盘引导情况下被写入内核镜像第一个扇区到内容,它负责加载其余的内核镜像到内存。
  • pxeboot.img:当从网络启动时使用到的。
  • kernel.img:它是grub的kernel,和操作系统的内核无关,其包含运行时包含的基本工具,框架驱动、文件句柄、环境变量、安全模式命令行解析器等,他可以直接使用但是通常它会被编译进所有的内核镜像中使用。
  • *.mod:这是一些可以动态加载的一些模块,当我们需要时,可以将它们可以被动态加载编译进内核镜像,也可以使用insmod手动加载。他们就代替 GRUB 中的 stage1_5 之类到镜像。
  • core.img:这是GRUB2的内核镜像,它由grub-mkimage程序将diskboot.img、kernel.img和一些模块(*.mod)动态编译而成,一般情况下他已经包含足够的模块去访问/boot/grub,模块机制使得内核镜像能保持很小的尺寸。在某种程度上,它可以被视为 GRUB 中的 stage2。

在GRUB2安装时,GRUB2把内核镜像在磁盘中到位置(--boot-directory)写入到 boot.img 中这就使得 boot.img 能够在不能识别文件系统的情况下加载内核镜像。

安装grub2的过程大体分两步:

  1. 根据/usr/lib/grub/i386-pc/目录下的文件生成core.img,并拷贝boot.img和core.img涉及的某些模块文件到/boot/grub2/i386-pc/目录下;
  2. 根据/boot/grub2/i386-pc目录下的文件向磁盘上写boot loader。

在/boot/grub2/i386-pc目录下只有: boot.img,core.img, *.mod(被加载) 的文件

grub2的配置文件

grub2的默认配置文件为/boot/grub2/grub.cfg,该配置文件的写法弹性非常大,但绝大多数需要修改该配置文件时,都只需修改其中一小部分内容就可以达成目标。

grub2-mkconfig程序可用来生成符合绝大多数情况的grub.cfg文件,默认它会自动尝试探测有效的操作系统内核,并生成对应的操作系统菜单项。使用方法非常简单,只需一个选项"-o"指定输出文件即可。

grub2-mkconfig -o /boot/grub2/grub.cfg

grub2-mkconfig是根据/etc/default/grub文件来创建配置文件的。该文件中定义的是grub的全局宏,修改内置的宏可以快速生成grub配置文件。

  1. 配置文件选项手册:GNU GRUB Manual 2.06: Simple configuration
  2. 配置文件语法手册:GNU GRUB Manual 2.06: Shell-like scripting
  3. 配置文件命令手册:GNU GRUB Manual 2.06: Commands

进入shell

  1. 首先修改 /etc/default/grub文件,参考以下config文件注释掉GRUB_HIDDEN_TIMEOUT=0
  2. 执行"sudo update-grub"
  3. 重启后,看到menu,按“C”键进入

另外附上救援模式:https://www.cnblogs.com/pengdonglin137/articles/16874607.html

主要参考

 《带你到Linux最开始的地方》

 《计算机是如何启动的?》

 《grub2详解(翻译和整理官方手册)》

 《LINUX操作系统之奥秘》

相关内容

热门资讯

开晨会需要说什么内容 开晨会需要说什么内容晨会说的内容可以很多呀,可以说接下来的工作安排,也可以说,前期工作中的一些总结,...
有谁知道在鬼吹灯有声小说中前面... 有谁知道在鬼吹灯有声小说中前面有一段小女孩的声音念:人点烛 鬼吹灯... 这个版本的故事是谁讲的?周...
小蒂皮出自哪本书 小蒂皮出自哪本书小蒂皮出自哪本书我的野生动物朋友(蒂皮·本杰明·奥康迪·德格雷著图书)《我的野生动物...
盘古开天辟地的故事 盘古开天辟地的故事很久很久以前,天和地还没有分开,宇宙混沌一片。有个叫盘古的巨人一直睡在这混沌之中。...
英雄联盟中 赏金猎人怎么样? ... 英雄联盟中 赏金猎人怎么样? 多少钱 金币3150的ADC。入手的话不会吃亏,基本不会压箱底,很热门...
寻找一部累死何以笙箫默之类的小... 寻找一部累死何以笙箫默之类的小说也是辛夷坞的,叫山月不知心底事那就它的作者顾漫的其他小说呗 微微一...
大家谈谈对洪荒小说之中圣人的看... 大家谈谈对洪荒小说之中圣人的看法圣人不死,大盗不止都是人 人有的情绪他们都有 就是拳头大些对...
单位体检,自己一个人去害怕撞到... 单位体检,自己一个人去害怕撞到同事怎么办,不想别人看到观察我,漏出我不成熟样子,显出我的丑态。这让单...
鱼在天上飞? 鱼在天上飞?“鱼在天上飞,鸟在水里游”这句话的意思是鸟儿在水中的倒影就像是在水里游,天空在水中的倒影...
我想复婚,前夫说以后再,我改变... 我想复婚,前夫说以后再,我改变好了,他有可能追我,现在不想复婚,他有喜欢的女人了,我们就不可能了吗感...
原神草神什么时候复刻 原神草神什么时候复刻原神草神复刻是在3.6版本以后。草神纳西妲首次登场是逗腊3.2版本,新角色想要等...
网络拽姐语录小学生? 网络拽姐语录小学生?无论谁离开了你,请你别忘了,他没来之前,你本就是一个人生活。
有一部小说,女主小时候被男主收... 有一部小说,女主小时候被男主收养了,女主叫男主哥哥,男主对女主的我也在找这个小说我之前也看了,好像叫...
高层建筑立面大面积粉刷需要设伸... 高层建筑立面大面积粉刷需要设伸缩缝吗?高层建筑立面大面积粉刷需要设伸缩缝需要的,无正举论地面或立念清...
低头思故乡,为什么把杯思在长,... 低头思故乡,为什么把杯思在长,情愿何处在方歌曲叫什么名字“李白的歌”离开了家乡 背着沉沉的行囊开始了...
李白的诗有多少 李白的诗有多少典故中大多说是三千至四千首,现存不足一千首很多,总之不少~李白一生留下了九百六十多首诗...
怎么才可以学会拿得起放得下……... 怎么才可以学会拿得起放得下…… 有一段感情,正整3年了,可是我还是觉得分手那天就好像昨天发生的一样替...
为什么官方直播间买手机送耳机 为什么官方直播间买手机送耳机吸引消费者,增加销售量。官方直播间作为官方的直播平台,买手机送耳机是为了...
自考通还是一考通好?该选哪个? 自考通还是一考通好?该选哪个?我现在自考行政管理专科。专业课程我应该选自考通好还是一考通好呢?这个很...
淘宝实际付款价格为什么与订单价... 淘宝实际付款价格为什么与订单价格不符是这样的,我买了一双鞋,当时限价160我拍了下来,当时没付款,后...