谈一谈GRUB

GRUB

GRand Unified Bootloader简称“GRUB”,是开机启动的第一个程序,引导用户选择内核或系统。
GRUB分成 GRUB legacy 和 GRUB 2。GRUB 0.x 都被称为 grub legacy,GRUB 1.x 就被称为 GRUB2。GRUB2虽然名称是升级版的意思,但是其代码完全重写。

GRUB启动

当系统自检完后,BIOS便会去MBR(主引导记录扇区)加载Bootloader。

在总共512字节的主引导扇区里主引导程序(boot loader)占446个字节,第二部分是Partition table区(分区表),即DPT,占64个字节,硬盘中分区有多少以及每一分区的大小都记在其中。第三部分是magic number,占2个字节,固定为0xAA55或0x55AA

显然446字节不够让我们加载完一个具备强大功能的bootloader,所以Linux将bootloader启动分为了三个阶段,分别为 stage1,stage1_5,stage2

  • stage1 存放在MBR上,属于GRUB的开始执行程序,通过这段程序,进一步执行stage1_5或是stage2的执行程序
  • stage1_5 在系统安装后,存放在MBR后的扇区,让stage1中的bootloader能识别stage2所在的分区上的文件系统
  • stage2 存放文件系统下的boot分区目录中

GRUB配置

GRUB 目录在 /boot/grub,其配置文件为 /boot/grub/grub.conf,同样也可以从 /etc/grub.conf 进行编辑,后者为前者的软链接。
我们来看看CentOS6默认 /boot/grub/grub.conf:

配置项解释
default=0设定默认启动的菜单项;菜单项(title)编号从0开始
timeout=5指定菜单项等待选项选择的时长
splashimage=(hd0,0)/grub/splash.xpm.gz指明菜单背景图片文件路径
hiddenmenu隐藏菜单
title CentOS (2.6.32-431.el6.x86_64)定义菜单项“标题”
root (hd0,0)grub查找stage2及kernel文件所在设备分区,为grub的“根”
kernel /vmlinuz-VERSION启动的内核
initrd /initramfs-VERSION.img内核匹配的 ramfs 文件

进入维护模式

当系统出现问题,无法启动,我们可以通过GRUB进入维护模式(单用户模式),在系统启动时,按下任意键进入 GRUB 进行启动项菜单选择。
1. 选定要编辑的title后,用 e 命令进入编辑菜单,在 kernel行 再次 用 e 命名进行编辑 附加 1,s,S 或者 single,回车进行确认。

2. 键入完成后,回到 kernel 所在行,用 b 命令 进行启动。

安装GRUB

如果连GRUB也出问题了,What? 这个也能出问题,是的。例如你运行如下命令 dd if=/dev/zero of=/dev/sda bs=256 count=1 将MBR扇区给破坏了,又或者是误将 /boot/grub 中文件删除。不要紧,我们有以下两种方式来恢复GRUB,无需重装系统。
1.使用 grub-install 命令给 需要安装 GRUB 设备进行重装grub。命令格式如下

grub-install –root-directroy=ROOT /devDISK

这里 假如 我们将需要恢复 GRUB 的磁盘的根 挂载一台正常运行的Linux电脑上,挂载点为 /mnt/devA,在此系统上设备文件名为 /dev/sdb,需要执行的命令则为

grub-install –root-directroy=/mnt/devA /dev/sdb

2.使用 grub 命令,root 后为 boot所在的分区(一般为硬盘上的第一分区),steup 后为安装的磁盘设备,此方式要求 必须有个 /boot/grub 目录,而且目录中的文件必须齐全。

grub
grub> root (hd0, 0)
grub> setup (hd0)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值