[toc]
简介
Grub(GRand Unified Bootloader)是统一资源引导器,也就是引导加载器;它的工作是提供一个菜单,允许用户选择要启动的系统或不同的内核版本;把用户选定的内核装载到RAM中的特定空间中,然后解压、展开,而后把系统控制权移交给内核
它目前有两个版本:
- GRUB 0.X:Grub Legacy
- GRUB 1.X:Grub2
Grub Legacy概述
Grub Legacy是最经典的Grub程序。它分为三个部分stage1、stage1_5和stage2
- stage1
即写入mbr中存储的bootloader程序。它的任务就是将stage1_5(此时并不能算是磁盘分区/boot/grub/下的stage1_5,因为stage1无法识别文件系统)载入内存执行
- stage1_5
位于mbr之后的扇区,通过提供基本文件系统驱动让stage1中的bootloader程序能识别磁盘分区/boot/grub/上的stage2文件并载入内存执行
注意:此处若是boot分区的文件系统类型不属于stage1_5的中的一个,则会借助ramdisk来加载在/lib64/moudles/下额外的文件系统驱动。
- stage2
这个程序主要给用户提供一个比较友好的启动菜单,而后去加载位于同一个磁盘分区/boot/的内核文件(例如 vmlinuz-2.6.32-573.el6.x86_64)
Grub的配置文件和功用
配置文件:/boot/grub/grub.conf,保证grub和内核等在一个目录;此外它创建了一个链接文件/etc/grub.conf指向配置文件来保证用户使用配置文件一致性
配置项:
1 | default=#:设定默认启动的菜单项:菜单项(title)编号从0开始 |
示例:
/boot/grub/menu.lst 或者 /boot/grub/grub.conf CentOS下这两个文件是绑定的
1 | # grub.conf generated by anaconda |
功用
1 | 1. 提供菜单、并提供交互式接口 |
Grub的命令行接口和编辑功能
- 进入grub的命令行界面和编辑界面
- 启动机器时,按ESC键可进入内核选择界面
- 按c可进入命令行界面
- 按e可进入编辑界面
- rub的命令行命令和编辑命令
grub的命令行命令
1 | help:获取帮助信息 |
grub的编辑命令
1 | b:boot,启动 |
grub的安装
- grub-install
使用格式:grub-install --root-directory=/PATH/TO/rootDIR DEVICE
示例:grub-install --root-directory=/ /dev/sda3
2. grub命令(shell中输入)
grub> root (hd0,0)
grub> setup (hd0)