一、要想了解grub,首先要了解的几个概念

  1.1 启动管理器
  启动管理器是存储在磁盘开始扇区中的一段程序,例如,硬盘的MBR(Master Boot Record),在系统完成启动测试后,如果系统是从MBR启动,则BIOS(Basic Input/Output System)将控制传送给MBR。然后存储在MBR中的这段程序将运行。这段程序被称为启动管理器。它的任务就是将控制传送给操作系统,完成启动过程》有许多可用的启动管理器,包括GNU GRUB (Grand UnifIEd Boot Loader),Bootmanager, LILO (Linux LOader), NTLDR (boot loader for Windows NT systems),等等等.
  1.2 什么是grub?
  grub 是一个多重启动管理器。grub是GRand Unified Bootloader的缩写,它可以在多个操作系统共存时选择引导哪个系统。它可以引导的操作系统包括:
  Linux,FreeBSD,Solaris,NetBSD,BeOSi,OS/2,Windows95/98,Windows NT,Windows2000,WinXP。它可以载入操作系统的内核和初始化操作系统(如Linux,FreeBSD),或者把引导权交给操作系统(如Windows 98)来完成引导。
  1.3 grub的特点
  特别适用于linux与其它操作系统共存情况。
  支持大硬盘 现在大多数Linux发行版本的lilo都有同样的一个问题:根分区(/boot分区)不能分在超过1024柱面的地方,一般是在8.4G左右的地方,否则lilo不能安装,或者安装后不能正确引导系统。而grub就不会出现这种情况,只要安装时你的大硬盘是在LBA模式下,grub就可以引导根分区在8G以外的操作系统。
  支持开机画面   grub支持在引导开机的同时显示一个开机画面。对于玩家来说,这样可以制作自己的个性化开机画面;对于PC厂商,这样可以在开机时显示电脑的一些信息和厂商的标志等。grub支持640x480,800x600,1024x768各种模式的开机画面,而且可以自动侦测选择最佳模式,与Windows那320x400的开机画面不可同日而语。
两种执行模式 grub不但可以通过配置文件进行例行的引导,还可以在选择引导前动态改变引导时的参数,还可以动态加载各种设备。例如你在Linux下编译了一个新的核心,但不能确定它能不能工作,你就可以在引导时动态改变grub的参数,尝试装载这个新的核心进行使用。Grub的命令行有非常强大的功能,而且支持如bash或Doskey一样的历史功能,你可以用上下键来寻找以前的命令。
  菜单式选择   grub使用一个菜单来选择不同的系统进行引导。你还可以自己配置各种参数,如延迟时间,默认操作系统等。
  分区大小改变后不必重新配置   grub是通过文件系统直接把核心读取到内存,因此只要操作系统核心的路径没有改变,grub就可以引导系统。
  除此之外,Grub还有许多非常强大的功能。例如支持多种外部设备,动态装载操作系统内核,甚至可以通过网络装载操作系统核心。Grub支持多种文件系统,支持多种可执行文件格式,支持自动解压,可以引导不支持多重引导的操作系统,支持网络启动等。
  1.4 MBR和第一扇区
  你可以简单的理解为MBR是整个硬盘的物理第一位置,而第一扇区是硬盘的物理第二位置.
  1.5 一个GRUB配置文件(为方便下篇微型linux服务器创建特制配置文件)
    grub的配置文件在/boot/grub/grub.conf
default=0
    timeout=3
    title MY Linux
           root (hd0,0)
           kernel /vmlinuz ro root=/dev/sda2 quiet
           initrd /initrd.gz
    default=0 (注:默认的操作系统就是由default控制的。default后加一个数字n,表明是第 n+1个。需要注意的是,GRUB中,计数是从0开始的,第一个硬盘是hd0,第一 个软驱是fd0,等等。所以,default 0 表示默认的操作系统在这儿是 Red Hat Linux (2.4.18-14)如果你修改成1就是WinXP了)
  timeout=3 (注:timeout表示默认等待的时间,这儿是3秒钟。超过3秒,用户还没有作出选 择的话,系统将自动选择默认的操作系统;当然你可以改成任何你乐意的时间)
  splashp_w_picpath(注:指定开机画面文件splash.xpm.gz的位置,这里我没有设置)
  title MY Linux (注:表示MY Linux的菜单项)
  root (hd0,0) (注:表示第一个硬盘第一个分区,这里的root和系 统内的root不是一码事!详细如下说明)
  kernel /vmlinuz ro root=/dev/sda2 quiet(注:指定内核的位置,静默模式下)
  initrd /initrd.gz (注:初始化)
二、如何使用grub
    2.1安装
没有安装的可以从ftp://ftp.gnu.org/gnu/grub/ 下载grub的源代码(这里我们下载grub-0.92.tar.gz)
解压下载到的源码tar -xvzf grub-0.92.tar.gz
    切换到grub-0.92目录下
开始安装make
       make install
至此你已经为安装GRUB真正做好了准备
为下一篇微型linux服务器打基础,这里我们新建一个目录:cd
                                                  mkdir mnt
                                                  mkidr mnt/boot
                                                  mkdir mnt/sysroot
使用grub-install --root-directory=/mnt /dev/sdb $1 &> /dev/null
2.2 配置grub
  grub启动时会在/boot/grub/中寻找一个名字为menu.lst的配置文件,如果找不到此文件则不进入菜单模式而直接进入命令行模式。