分享
 
 
 

一篇grub的文章-

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

GRUB的优点

GRUB是引导装入器(boot loader)--它负责装入内核并引导Linux系统。GRUB还可以引导其它操作系统,如FreeBSD、NetBSD、OpenBSD、GNU、GURD、 DOS,以及Windows95、98、NT和2000。尽管引导操作系统看上去是件平凡且琐碎的任务,但它实际上很重要。如果引导装入器不能很好地完成工作或者不具有弹性,那么就可能锁住系统,而无法引导计算机。另外,好的引导装入器可以给您灵活性,让您可以在计算机上安装多个操作系统,而不必处理不必要的麻烦。

GRUB是一个很棒的boot loader。它有许多功能,可以使引导过程变得非常可靠。例如,它可以直接从FAT、minix、FFS、ext2或ReiserFS分区读取Linux内核。这就意味着无论怎样它总能找到内核。另外,GRUB有一个特殊的交互式控制台方式,可以让您手工装入内核并选择引导分区。这个功能是无价的:假设GRUB菜单配置不正确,但仍可以引导系统。哦,对了--GRUB还有一个彩色引导菜单。

更令人惊讶的是,这是一个自由软件!!!

#GRUB菜单#

##################

先来看一个例子,这是位于/boot/grub/目录下的grub.conf文件。

此文件将在开机是产生一个菜单,包含有Debian linux,Windows2000,RedHat linux和Mandrake linux,共四个选择项。我一共分了8个区,一个fat16(0x6),一个ntfs(0x7),三个ext2fs分区(0x83),一个swap分区(0x82)。ntfs用来装win2000,三个ext2fs装了三个linux,c盘fat16分区没有装任何东西。

#例子由此开始

#一个GRUB configure的例子#

# #

timeout 10

default 2

#-->Debian linux<--

title Debian linux

root(hd0,2)

kernel /boot/vmlinuz-2.2.18 root=/dev/hda3 ro

initrd /boot/initrd-2.2.18.gz

#-->Debian END<--

#-->Windows 菜单选项<--

title Windows2000

root (hd0,0)

chainloader +1

#-->Winddows 结束<--

#-->RedHat linux 菜单选项<--

title RedHat linux

root(hd0,4)

chainloader +1 #在硬盘主引导分区装了lilo,所以也用了chainloader。

#-->RedHat linux 结束<--

#-->Mandrake linux 菜单选项<--

title Mandrake linux

root (hd0,5)

kernel /boot/vmlinuz-2.4.3-20mdk root=/dev/hda6 ro

initrd /boot/initrd-2.4.3-20mdk.img

#-->Mandrake linux 结束<--

#例子到此结束?

以符号井"#"开头的行表示被注释掉,没有任何意义。

timeout表示默认等待的时间,这儿是10秒钟。超过10秒,用户还没有作出选择的话,系统将自动选择默认的操作系统。

默认的操作系统就是由default控制的。default后加一个数字n,表明是第n+1个。需要注意的是,GRUB中,计数是从0开始的,第一个硬盘是hd0,第一个软驱是fd0,等等。所以,default 2表示默认的操作系统在这儿是Redhat linux。

接下来,正如你所想象的,title表示的是"Debian linux"菜单项。root(hd0,2)表示第一个硬盘,第三个分区。这儿的root于linux的root分区及其不同,此root非彼root也!

在Linux中,当谈到"root"文件系统时,通常是指主Linux分区。但是,GRUB有它自己的root分区定义。GRUB的root分区是保存Linux内核的分区。这可能是您的正式root文件系统,也可能不是。我们讨论的是GRUB,需要指定GRUB的root分区。进入root分区时,GRUB将把这个分区安装成只读型,这样就可以从该分区中装入Linux内核。GRUB的一个很"酷"的功能是它可以读取本机的FAT、FFS、minix、ext2和ReiserFS分区。

到目前为止,您可能会感到一点疑惑,因为GRUB所使用的硬盘/分区命名约定与Linux使用的命名约定不同。在Linux中,第一个硬盘的第五个分区称作"hda5"。而GRUB把这个分区称作"(hd0,4)"。GRUB对硬盘和分区的编号都是从0开始计算。另外,硬盘和分区都用逗号分隔,整个表达式用括号括起。现在,可以发现如果要引导Linux硬盘hda5,应输入"root(hd0,4)"。

知道了内核在哪儿,还要具体指出哪个文件是内核文件,这就是kernel的工作。

kernel /boot/vmlinuz-2.2.18 root=/dev/hda3 ro说明/boot/vmlinuz-2.2.18就是要载入的内核。后面的都是传递给内核的参数。root=/dev/hda3就是linux的硬盘分区表示法,ro是以readonly的意思。

initrd用来初始的linux image,并设置相应的参数。

是不是感觉很简单啊!再来看一看windows的定义段吧。

这里,我添加了一项来引导Windows2000。要完成此操作,GRUB使用了"链式装入器"(chainloader)。链式装入器从分区(hd0,0)的引导记录中装入win2000自己的引导装入器,然后引导它。这就是这种技术叫做链式装入的原因--它创建了一个从引导装入器到另一个的链。这种链式装入技术可以用于引导任何版本的DOS或Windows。

我的RedHat linux在硬盘主引导分区装了lilo,所以也用了chainloader。

GRUB的配置文件要简单就这么简单,如果你要更个性化一点,试一试把"color light-gray/blue"加在default语句的下面,下一次启动GRUB时,看看有什么变化,再试一试"color light-blue/red",惊喜吗?有趣吧!

######################

#GRUB的交互性#

######################

GRUB最好的优点之一就是其强健的设计--在不断使用它时请别忘了这点。如果更新内核或更改它在磁盘上的位置,不必重新安装GRUB。事实上,如有必要,只要更新menu.lst文件即可,一切将保持正常。

只有少数情况下,才需要将GRUB引导装入器重新安装到引导记录。首先,如果更改GRUB root分区的分区类型(例如,从ext2改成ReiserFS),则需要重新安装。或者,如果更新/boot/grub中的stage1和stage2文件,由于它们来自更新版本的GRUB,很有可能要重新安装引导装入器。其它情况下,可以不必理睬!

GRUB的最大的特点就是交互性特别强。在开机时,按一下"c",将进入GRUB控制台。显示如下:

GRUB version 0.5.96.1 (640K lower / 3072K upper memory)

[Minimal BASH-like line editing is supported. For the first word,TAB

lists possible command completions.Anywhere else TAB lists the possible completions of a device/filename.]

grub>

欢迎使用GRUB控制台。现在,再研究命令:

我将通过GRUB控制台绕过lilo来启动RedHat linux,

grub>root (h

现在,按一次Tab键。如果系统中有多个硬盘,GRUB?将显示可能完成的列表,从"hd0"开始。如果只有一个硬盘,GRUB将插入"hd0,"。如果有多个硬盘,继续进行,在("hd2")中输入名称并在名称后紧跟着输入逗号,但不要按Enter键。部分完成的root命令看起来如下:

grub>root(hd0,

现在,继续操作,再按一次Tab键。GRUB将显示特定硬盘上所有分区的列表,以及它们的文件系统类型。在我的系统中,按Tab键时得到以下列表:

grub>root(hd0,(tab,按tab一下键)

Possible partitions are:

Partition num: 0, Filesystem type is fat, partition type 0x6

Partition num: 2, Filesystem type is ext2fs, partition type 0x83

Partition num: 4, Filesystem type unknown, partition type 0x7

Partition num: 5, Filesystem type is ext2fs, partition type 0x83

Partition num: 6, Filesystem type is fat, partition type 0xb

Partition num: 7, Filesystem type is fat, partition type 0xb

Partition num: 8, Filesystem type is ext2fs, partition type 0x83

Partition num: 9, Filesystem type unknown, partition type 0x82

如您所见,GRUB的交互式硬盘和分区名称实现功能非常有条理。这些,只需要好好理解GRUB新奇的硬盘和分区命名语法,然后就可以继续操作了

grub>root(hd0,

现在已安装了root文件系统,到装入内核的时候了

grub>kernel /boot/vmlinuz-2.4.2 root=/dev/hda5 ro

[Linux-bzImage, setup=0x1200, size=0xe1a30]

您已经安装了root文件系统并装入了内核。现在,可以引导了。只要输入"boot",Linux引导过就将开始。是不是很cool啊,GRUB的menu.lst更像一个linux下的脚本程序。

#####################

#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/boot/grub

#cp /boot/grub/stage2 /mnt/floppy/boot/grub

再有一个步骤,就能得到可用的引导盘。

在linux bash中,从root用户运行"grub",该程序非常有趣并值得注意,因为它实际上是GRUB引导装入器的半功能性版本。尽管Linux已经启动并正在运行,您仍可以运行GRUB并执行某些任务,而且其界面与使用GRUB引导盘或将GRUB安装到硬盘MBR时看到的界面(即GRUB控制台)完全相同。

在grub>提示符处,输入:

grub>root(fd0)

grub>setup (fd0)

grub>quit

现在,引导盘完成了。

如果要把GRUB装到硬盘上,也很容易。这个过程几乎与引导盘安装过程一样。首先,需要决定哪个硬盘分区将成为root GRUB分区。在这个分区上,创建/boot/grub目录,并将stage1和stage2文件复制到该目录中,可以通过重新引导系统并使用引导盘,或者使用驻留版本的GRUB来执行后一步操作。在这两种情况下,启动GRUB,并用root命令指定root分区。例如,如果将stage1和stage2文件复制到hda5的/boot/grub目录中,应输入"root (hd0,4)"。接着,决定在哪里安装GRUB--在硬盘的MBR,或者如果与GRUB一起使用另一个"主"引导装入器,则安装在特定分区的引导记录中。如果安装到MBR,则可以指定整个磁盘而不必指定分区,如下(对于hda):

grub>setup (hd0)

如果要将GRUB安装到/dev/hda5的引导记录中,应输入:

grub>setup (hd0,4)

现在,已安装GRUB。引导系统时,应该立即以GRUB的控制台方式结束(如果安装到MBR)。现在,应创建引导菜单,这样就不必在每次引导系统时都输入那些命令。

小结:在这里只是介绍了GRUB的一部分。例如,可以使用GRUB来执行网络引导,引导BSD文件系统,或更多操作。另外,GRUB有许多配置和安全性命令也很有用。如需所有GRUB功能的完整描述,请阅读GRUB出色的GNU文档。只要在bash提示中输入"info grub"就可以阅读该文档。

有用的一些信息:xosl是一个支持鼠标的图形界面boot loader,可以于system command和boot manager相比

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有