Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1165511
  • 博文数量: 241
  • 博客积分: 4385
  • 博客等级: 上校
  • 技术积分: 2383
  • 用 户 组: 普通用户
  • 注册时间: 2009-06-07 23:13
文章分类

全部博文(241)

文章存档

2013年(1)

2012年(8)

2011年(62)

2010年(109)

2009年(61)

分类: LINUX

2010-08-04 15:09:13

GRUB(统一引导装入器)是基本的Linux引导装入器。
其有四个作用,如下:

1.选择操作系统(如果计算机上安装了多个操作系统)。
2.表示相应引导文件所在的分区。
3.找到内核。
4.运行初始内存盘,设置内核和相关模块。



GRUB的设置文件是

Fedora的是在/boot/grub/grub.conf

ubuntu中是在 /boot/grub/menu.lst

/boot/grub/grub.conf中典型的GRUB设置文件,如下图

[root@localhost ~]# cat /boot/grub/grub.conf
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:   You do not have a /boot partition.   This means that
#       all kernel and initrd paths are relative to /, eg.
#       root (hd0,9)
#       kernel /boot/vmlinuz-version ro root=/dev/hda10
#       initrd /boot/initrd-version.img
#boot=/dev/hda
default=1
timeout=30
splashimage=(hd0,9)/boot/grub/splash.xpm.gz
hiddenmenu
title Fedora Core (2.6.9-1.667)
       root (hd0,9)
       kernel /boot/vmlinuz-2.6.9-1.667 ro root=LABEL=/ rhgb quiet
       initrd /boot/initrd-2.6.9-1.667.img
title Other
       rootnoverify (hd0,0)
       chainloader +1


对上图中GRUB的变量进行说明如下

变量             说明
#:          对菜单设置文件进行注释。
default:    指定默认操作系统。如果为0,则没有用户输入时,自动启动第一段中显示的操作系统。
timeout:    设置GRUB启动默认之前的时间极限(秒数)。在上图中为30秒。
splashimage: 指定默认GRUB引导时所使用的背景图像的位置。
hiddenmenu: 这个命令被使用时,他不显示GRUB菜单接口,在超时时间过期后载入默认项。用户通过按[Esc]键,能看到标准的GRUB菜单。能在其前加#或删除来达到显示菜单借口的目的。
title:       设置GRUB菜单中显示的选项。一个是显示Fedora Core (2.6.9-1.667),一个   为Other,也即我使用的视窗系统 XP。
kernel:        指定Linux内核地址。
initrd:        指定初始内存盘地址。
rootnoverify:   对视窗系统 XP之类的敏感操作系统指定引导文件所在分区。
chainloader: +1表示对指定分区中第一个扇区寻找引导文件。

说明1:password变量未被列出,是因为我在安装系统时,未选择引导装载口令。这个变量被使用时,他能防止不知道口令的用户编辑菜单的项目。

在GRUB中增加口令的办法使用grub-md5-crypt命令,在提示下输入所要口令。能看到一系列奇怪的字符,能将其复制到设置文件中。非常容易从命令行复制这个口令,只要用鼠标加亮选择口令,在文本编辑器中打开/etc/grub.conf,在所要位置右单击鼠标,然后Linux即会自动插入加亮的MD5口令。

说明2为了方便起见,/etc/grub.conf链接实际引导装入器的设置文件/boot/grub/grub.conf。

更有一些其他的GRUB变量未被列出,如果要查询更周详的信息,能参考如下:

能在系统里使用man grub或info grub命令。

以下是一些关于grub的站点


- GNU GRUB 项目的主页。这个站点包含了GRUB发展状态的信息及一个FAQ。


- 在这个项目被脱管到免费软件基金会进一步发展前的最初的GRUB文件。


- 研究GRUB各种不同的用法,包括引导非Linux操作系统。


- 一篇介绍性的文章,讨论在一个系统上GRUB设置,包括GRUB命令行选项的概述。

补充 ubuntu中的

==============================================================================
default      0
timeout     3
hiddenmenu
title       Ubuntu 9.04, kernel 2.6.28-11-generic
uuid          bb77114e-07a7-44a4-9345-4cc9f6e25296
kernel        /vmlinuz-2.6.28-11-generic root=UUID=5e0cc8d2-2b7f-41a5-aa58-acc670569b5f ro quiet splash
initrd          /initrd.img-2.6.28-11-generic
quiet

title            Ubuntu 9.04, kernel 2.6.28-11-generic (recovery mode)
uuid           bb77114e-07a7-44a4-9345-4cc9f6e25296
kernel        /vmlinuz-2.6.28-11-generic root=UUID=5e0cc8d2-2b7f-41a5-aa58-acc670569b5f ro single
initrd          /initrd.img-2.6.28-11-generic

title          Windows 95/98/NT/2000
root           (hd0,0)
makeactive
chainloader    +1

title       Ubuntu 9.04, memtest86+
uuid          bb77114e-07a7-44a4-9345-4cc9f6e25296
kernel         /memtest86+.bin
quiet
==============================================================================
上面的选项的作用:
(1)default 0:此选项是在默认的情况下,GRUB启动哪个操作系统,如果装了多个操作系统,GRUB能够指定默认是启动那个操作系统。如果是0,则默认启动第一个(最上面的)的操作系统;如果是1,则默认第二个,以此类推。
(2)timeout 3:超时时间,单位是秒,在此时间内如果用户没有进行任何操作,那么将启动default指定的操作系统,如果是正数,则此等待时间规定为秒数,如果是 0,则立刻进入指定操作系统,如果是负数,则进入GRUB的程序界面,一直等待用户选择进入指定的操作系统。
(3)hiddenmenu:表示隐藏GRUB的程序界面,在Ubuntu系统中,默认情况下GRUB的程序界面是隐藏的,如果想显示,则需要按提示按下Esc键。
(4)title       Ubuntu 9.04, kernel 2.6.28-11-generic:表示出现在GRUB程序界面中的字符串,这里可以是任何字符串,原则上都使用引导的操作系统的名称。
(5)root(hd0,1):这个是GRUB中分区的表示方法,GRUB程序中分区的表示方法与Ubuntu系统中的表示分区方法不同,在Ubuntu 中表示分区的方法如同hda1:其中h表示IDE硬盘,d表示设备,a表示第一个IDE设备中的主盘,1表示此硬盘的第一个主分区(具体分配信息请查阅其 他有关资料)。而在grub中是使用(hd0,1)的方式表示的,其中h表示IDE硬盘,d表示设备,0表示第一块IDE设备中的主盘,1表示此硬盘上的 第二个分区。因此在GRUB程序v中,硬盘的分区是从0开始的,而硬盘数也是从0开始的,如Ubuntu系统的hdb5在GRUB程序中就表示为 (hd1,4)。注意,前面的root表示的是操作系统的启动分区,而不是root目录。
(6)kernel:kernel及其后面的部分指定的是具体的内核文件,并且根据分区的挂载点和特性,后面指定了内核文件所在位置以及内核文件名,并且指明了跟目录所在的分区,并且将其以只读(ro)方式挂载。
(7)initrd:这部分是虚拟磁盘的文件名。
(8)chainloader+1:存在Windows操作系统的时候就会有这一项,这是Ubuntu采用的链式启动引导器,即表示启动分区有GRUB的启动分区直接下移到下一个位置(windows的引导位置)。
通过对GRUB的配置文件menu.lst的配置,可以很容易对启动的操作系统进行控制(在此文件中有大量#表示的详细说明)。

阅读(8342) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~