GRUB的英文全称是Grand Unified Bootloader,是一个写入到主引导记录和硬盘上的启动分区(/boot)中,并且用于加载操作系统的程序。GRUB引导后会给用户显示出一个图形启动菜单。

       Linux的启动过程如下

    

通俗易懂grub_grub

         在BIOS自检完成之后,就会读取启动设备(一般是硬盘)上的主引导记录,这时GRUB/LILO就会接管计算机。
        GRUB的引导阶段分为stage_1 stage_1.5 stage_2 三个步骤。Stage_1阶段是读取MBR的前446个字节,stage_2 阶段提供了GRUB的启动菜单,在启动时通过/boot/grub/grub.conf文件所定义的内容生成。启动菜单如图1所示:
 

 通俗易懂grub_grub_02

图1
       可以通过上、下箭头来选择要引导的操作系统,也可以“E”键进入菜单编辑界面。如图2所示
 

通俗易懂grub_grub_03

图2
        界面中包含了3行语句:root行指出引导的位置;kernel行指出操作系统内核的位置,initrd行指出映像文件的位置。这些语句存在/boot/grub/grub.conf文件中。
 
       在red hat enterprise linux5中典型的/boot/grub/grub.conf文件内容如下:
 

通俗易懂grub_grub_04

 
       1.default选项用于指定GRUB启动菜单中默认的启动操作系统,defatult=0说明第1个菜单项是默认的操作系统
     2. timeout 选项用于指定用户等待的时间,这里设为5s,如果超过5s没有选择就会启动默认的操作系统。
      3.spalashp_w_picpath用户指定开机画面的位置
      4.hiddenmenu 代表下面的菜单在开机时是隐藏的
      5.title 该行是菜单项,在GRUB启动菜单时会显示
      接下来的3行是图2中的内容
 
grub的安装有两种方式
grub-install
grub>setup
 
下面来看一下安装步骤:
1 给虚拟机添加一块硬盘,大小2G ,保存在桌面
2 对新盘分区 sdb1 100M sdb2 512M  
3 格式化两个分区 ,把sdb1 挂载到/mnt/boot目录下sdb2挂载到/mnt/sysroot目录下
[root@station11 ~]# partprobe /dev/sdb
[root@station11 ~]# mkdir /mnt/boot
[root@station11 ~]# mkdir /mnt/sysroot
[root@station11 ~]# mke2fs -j /dev/sdb1
[root@station11 ~]# mke2fs -j /dev/sdb2
[root@station11 ~]# mount /dev/sdb1 /mnt/boot
[root@station11 ~]# mount /dev/sdb2 /mnt/sysroot
 
4 安装grub
[root@station11 ~]# grub-install --root-directory=/mnt /dev/sdb
5 提供grub的配置文件grub.conf
[root@station11 ~]# vim /mnt/boot/grub/grub.conf
通俗易懂grub_grub_05 
OK 新建一台虚拟机,添加刚制作的这个小硬盘,启动后如下:
 

通俗易懂grub_grub_06

 

通俗易懂grub_grub_07 

      grub的安装成功了,显示了grub的引导界面 。花费了心思写的,里面存在很多不足之处,路过的点评  ^^ ^^