(一)安装linux时安装grub
安装redhatlinux时会提示安装引导程序,如果选择grub为引导程序,建议把grub安装到硬盘的引导扇区MBR.grub还可以引导其它操作系统,如FreeBSD、NetBSD、OpenBSD、GNUHURD和DOS,以及Windows95、98、NT、2000、XP。
(二)grub的配置
一旦选择了grub为引导程序,下面我们来了解一下它的配置。/boot/grub/grub.conf是grub产生一个引导选择菜单以及设置一些选项。下面是我的grub.conf:
以下为引用的内容:
#==========例子开始==========#grub.confgeneratedbyanaconda##Notethatyoudonothavetorerungrubaftr-makingchangestothisfile#NOTICE:Youhavea/bootpartition.Thismeansthat#allkernelandinir-dpathsarerelativeto/boot/,eg.#root(hd0,6)#kernel/vmlinuz-versionroroot=/dev/hda10#initrd/initrd-version.img#boot=/dev/hdadefault=0timeout=10splashimage=(hd0,6)/grub/splash.xpm.gz#-->RedhatLinux8.0<--titleRedHatLinux(2.4.18-14)root(hd0,6)kernel/vmlinuz-2.4.18-14roroot=LABEL=/initrd/initrd-2.4.18-14.img#-->MicrosoftWindowsXP<--titleMicrosoftWindowsXProotnoverify(hd0,0)chainloader+1#===========例子结束==========
配置选项解释:
以"#"开头的是注释行。我这里有两个操作系统,分别是RedHatLinux和MicrosoftWindowsXP。其中,timeout标识默认等待时间,我这设置为10秒,超过10秒用户还没作出选择的话,将自动选择默认的操作系统(我这里默认的是Redhatlinux8.0)
默认的操作系统是由default一项来控制的,default后的数字表明第几个是默认的,这里0表示第一个,1表示第二个。
所以如果你想修改默认的操作系统,就修改default后的数字。title一项是设置操作系统的名称,grub不支持中文(有点遗憾)。splashimage一项指定grub界面的背景图片,有兴趣的朋友可以修改grub的背景。
root(hd0,6)标识从第一个硬盘,第7个分区来启动搜索引导内核。注意这儿的root与linux的root分区不同,此root非彼root也!grub的硬盘标识方法与linux的有点不同。在linux中第一个主分区为hda1,第二个主分区为hda1,第一个逻辑分区为hda5,而在grub中是以(hdx,y)来标识的,如第一个主分区为(hd0,0)第一个逻辑分区为(hd0,1)依此类推。
所以这儿root后面的是你的/boot所在分区标识。知道了内核在哪儿,还要具体指出哪个文件是内核文件,这就是kernel的工作。kernel/vmlinuz-2.2.18-14ro
root=LABEL=/。说明/boot/vmlinuz-2.2.18-14就是要载入的内核。后面的都是传递给内核的参数。
ro是以readonly的意思。注意我这里内核前面的路径是"/",因为我的boot单独分了一个区,如果你没有为boot单独分区,那么内核前面的路径就是"/boot"。initrd用来初始的linuximage,并设置相应的参数。
再来看一看windows的定义段吧。这里,我添加了一项来引导WindowsXP。要完成此操作,GRUB使用了"链式装入器"(chainloader)。链式装入器从分区(hd0,0)的引导记录中装入winXP自己的引导装入器,然后引导它。这就是这种技术叫做链式装入的原因--它创建了一个从引导装入器到另一个的链。
这种链式装入技术可以用于引导任何版本的DOS或Windows。如果你在计算机中装有win98,winme,win2k,winxp的话,chainloader会把引导权交与win的NTLoader来引导。
(三)Grub启动盘的制作
要制作引导盘,需执行一些简单的步骤。首先,在新的软盘上创建ext2文件系统。然后,将其安装,并将一些GRUB文件复制到该文件系统,最后运行"grub"程序,它将负责设置软盘的引导扇区。
将一张空盘插入1.44MB软驱,输入:
#mke2fs/dev/fd0创建了ext2文件系统后,需要安装该文件系统:#mount/dev/fd0/mnt/floppy现在,需要创建一些目录,并将一些关键文件(原先安装GRUB时已安装了这些文件)复制到软盘:#mkdir/mnt/floppy/boot#mkdir/mnt/floppy/boot/grub#cp/boot/grub/stage1/mnt/floppy/bo-ot/grub#cp/boot/grub/stage2/mnt/floppy/boot/grub
再有一个步骤,就能得到可用的引导盘。
在linuxbash中,从root用户运行"grub",该程序非常有趣并值得注意,因为它实际上是GRUB引导装入器的半功能性版本。尽管Linux已经启动并正在运行,您仍可以运行GRUB并执行某些任务,而且其界面与使用GRUB引导盘或将GRUB安装到硬盘MBR时看到的界面(即GRUB控制台)完全相同。在grub>提示符处,输入:
grub>root(fd0)grub>setup(fd0)grub>quit
现在,引导盘完成了。