一、GRUB介绍
GRUB (GRand Unified Bootloader)是GNU 下的FSF 组织所推行的一套多重开机管理软件,目前 GRUB 在 Linux 上使用的版本为 0.97 版,FSF 的官方网站表示已经不会在此版本上再追加任何新的功能,会将心思放在 GRUB 2 上。
GNU GRUB(GRand Unified Bootloader)是一个将引导装载程序安装到主引导记录的程序,主引导记录是位于一个硬盘开始的扇区。它允许位于主引导记录区中特定的指令来装载一个GRUB菜单或是GRUB的命令环境。这使得用户能够开始操作系统的选择,在内核引导时传递特定指令给内核,或是在内核引导前确定一些系统参数(如可用的RAM大小)
GRUB 是一个非常强悍的开机管理程序,甚至还有选项加密功能,可以让其他用户无法更改其开机设置。主要特点如下所示:
支持多种文件格式。支持不可多重开机的操作系统。可加载多重模块。配置文件较人性化。
选项接口。弹性化的指令接口。支持多种文件系统种类。支持自动解压缩。可从任何已安装的设备中访问文件。
磁盘转换的独立性。
从Red Hat Linux 7.2起,GRUB(GRand Unified Bootloader)取代LILO(因为LILO存在1024柱面的限制,并且更改了磁盘上的启动信息文件后需要重新启动系统才能同步446字节的内容,而且不能引导8g以上的大硬盘)成为了linux默认的启动装载程序,“boot loader”是计算机启动后第一个运行的软件。它负责加载一个操作系统的内核,并把控制权交给内核。内核则负责剩下的初始过程。GRUB 一个很重要的特色就是灵活性;GRUB 可以识别文件系统和二进制格式的内核,所以你可以加载任何操作系统,而不需要记录内核在磁盘上的物理位置。
二、 装载GRUB的过程
GRUB 含有几个 images 文件,两个基础(必需的)stages 文件(stage1和 stage2),可选的 stage(也称为stage1.5),和两个网络引导的images 文件nxgrub 和 pxegrub)。
stage1: 硬盘上boot目录下面的在系统安装时候已经安装在mbr中,硬盘上的其实是bootloader的备份,存储在硬盘任何地方都可以,stage1只有mbr的前446字节,后面的字节和mbr没有关系,可以使用dd命令备份mbr:
dd if=/dev/hda of=mbr.bin bs=512 count=1 # od -xa mbr.bin
再用hexdump -C命令查看stage1、备份出来的mbr,比较mbr与stage1的不同之处。
stage1.5:硬盘boot目录下面有若干个 stage1.5文件,如e2fs_stage1_5、fat_stage1_5、jfs_