GRUB多系统启动引导.docx

上传人:b****9 文档编号:23425086 上传时间:2023-05-17 格式:DOCX 页数:10 大小:21.97KB
下载 相关 举报
GRUB多系统启动引导.docx_第1页
第1页 / 共10页
GRUB多系统启动引导.docx_第2页
第2页 / 共10页
GRUB多系统启动引导.docx_第3页
第3页 / 共10页
GRUB多系统启动引导.docx_第4页
第4页 / 共10页
GRUB多系统启动引导.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

GRUB多系统启动引导.docx

《GRUB多系统启动引导.docx》由会员分享,可在线阅读,更多相关《GRUB多系统启动引导.docx(10页珍藏版)》请在冰豆网上搜索。

GRUB多系统启动引导.docx

GRUB多系统启动引导

GRUB

目录

1什么是GRUB?

2下载GRUB

3制作引导盘

4GRUB命名约定

5装入内核

6重新调查引导软盘

7两阶段过程

8搜索和恢复

9硬盘引导

10引导菜单

11理解引导菜单

12GRUB的弹性

GRUB-什么是GRUB?

GRUB是引导装入器--它负责装入内核并引导Linux系统。

GRUB还可以引导其它操作系统,如FreeBSD、NetBSD、OpenBSD、GNU、HURD和DOS,以及Windows95、98、NT和2000。

尽管引导操作系统看上去是件平凡且琐碎的任务,但它实际上很重要。

如果引导装入器不能很好地完成工作或者不具有弹性,那么就可能锁住系统,而无法引导计算机。

另外,好的引导装入器可以给您灵活性,让您可以在计算机上安装多个操作系统,而不必处理不必要的麻烦。

GRUB是一个很棒的引导装入器。

它有许多功能,可以使引导过程变得非常可靠。

例如,它可以直接从FAT、minix、FFS、ext2或ReiserFS分区读取Linux内核。

(AIX、SUN的系统?

我还不知道能不能支持)这就意味着无论怎样它总能找到内核。

另外,GRUB有一个特殊的交互式控制台方式,可以让您手工装入内核并选择引导分区。

这个功能是无价的:

假设GRUB菜单配置不正确,但仍可以引导系统。

哦,对了--GRUB还有一个彩色引导菜单Linux世界在很长一段时间里一直使用LILO引导装入器,而且它可以让上百万的Linux用户引导系统。

是的,的确是这样,LILO很有效。

但是,LILO的维修率很高,而且很不灵活。

与其花很多时间来描述GRUB的优点,还不如演示如何创建自己的GRUB引导盘以及如何使用它来引导系统。

然后,我将说明GRUB的一些很“酷”的技术细节,并指导您完成将GRUB安装到MBR(主引导记录)的过程,以使它成为缺省引导装入器。

如果您有点胆小,不必害怕。

可以学习前半部分,创建GRUB引导盘,尝试使用GRUB而不必弄乱现有的引导装入器。

或者,可以用其安全的“驻留”方式来熟悉GRUB。

那么,让我们立即开始吧。

GRUB-下载GRUB

要开始探究GRUB的精妙之处,首先需要下载、编译和安装它。

但不要害怕--根本不会修改您的引导记录--我们只是要编译和安装GRUB,就像其它程序一样,在此过程中我们可以创建GRUB引导盘。

请不要担心;在修改引导过程之前,我会告诉您。

现在开始。

访问ftp:

//alpha.gnu.org/gnu/grub/并下载可以找到的最新版本的GRUBtar压缩包。

最新的tar压缩包是grub-0.5.96.1.tar.gz。

下载了最新版本后,就可以安装了。

安装期

这里是从tar压缩包安装GRUB所需输入的命令。

我将在/tmp中编译源文件,并将所有部分都安装到硬盘的/usr目录下。

从root用户,输入以下命令:

#cd/tmp

#tarzxvf/path/to/archive/here/grub-0.5.96.1.tar.gz

#cdgrub-0.5.96.1

#./configure--prefix=/usr

#make

#makeinstall

现在已经安装了GRUB,准备开始使用它。

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/usr/share/grub/i386-pc/stage1/mnt/floppy/boot/grub

#cp/usr/share/grub/i386-pc/stage2/mnt/floppy/boot/grub

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

制作引导盘,第三部分

解压、编译和安装GRUB源tar压缩包时,会将程序grub放到/usr/sbin中。

该程序非常有趣并值得注意,因为它实际上是GRUB引导装入器的半功能性版本。

是的,尽管Linux已经启动并正在运行,您仍可以运行GRUB并执行某些任务,而且其界面与使用GRUB引导盘或将GRUB安装到硬盘MBR时看到的界面完全相同。

这是有趣的设计策略,现在该使用驻留版本的GRUB来设置引导盘的引导扇区了。

从root用户,输入"grub"。

GRUB控制台将启动,显示如下:

GRUBversion0.5.96.1(640Klower/3072Kuppermemory)

[MinimalBASH-likelineeditingissupported.Forthefirstword,TAB

listspossiblecommandcompletions.AnywhereelseTABliststhepossible

completionsofadevice/filename.]

grub>;

欢迎使用GRUB控制台。

现在,研究命令。

制作引导盘,第四部分

在grub>;提示符处,输入:

grub>;root(fd0)

grub>;setup(fd0)

grub>;quit

现在,引导盘完成了。

在继续下一步骤之前,在看一下刚才输入的命令。

第一个"root"命令告诉GRUB到哪里查找辅助文件stage1和stage2。

缺省情况下,GRUB会在指定的分区或磁盘上的/boot/grub目录中进行查找。

在安装引导盘时,也就是几分钟以前,我们已将这些文件复制到正确的位置。

接着,输入了setup命令,它告诉GRUB将引导装入器安装到软盘的引导记录上;我们将在以后详细讨论这一过程。

然后退出。

现在,已经制作好引导盘,可以开始使用GRUB了。

使用GRUB引导系统之前,需要知道一些信息。

首先,应知道哪个分区保存了Linux内核,以及root文件系统的分区名称。

然后,应查看现有LILO配置来寻找需要传递给内核的变量,如"mem=128M"。

一旦获取了这些信息,就可以开始了。

要启动GRUB,需要关闭系统并退出引导盘。

如果由于某些原因而不能立即关闭系统(比如上班时在部门的服务器上测试GRUB),那么只要在提示中输入"grub"并继续操作。

所有程序的运行情况都不会改变,只是您不能执行引导(因为Linux正在运行)。

装入引导盘时,在屏幕顶部将出现一条消息,告诉您正在装入第一阶段和第二阶段。

几秒后,将会出现一个熟悉的屏幕,显示如下:

GRUBversion0.5.96.1(640Klower/3072Kuppermemory)

[MinimalBASH-likelineeditingissupported.Forthefirstword,TAB

listspossiblecommandcompletions.AnywhereelseTABliststhepossible

completionsofadevice/filename.]

grub>;

可以看到,这些内容与在Linux中以驻留方式运行GRUB时出现的消息完全相同--只不过现在我们是使用GRUB来引导Linux。

在Linux中,当谈到"root"文件系统时,通常是指主Linux分区。

但是,GRUB有它自己的root分区定义。

GRUB的root分区是保存Linux内核的分区。

这可能是您的正式root文件系统,也可能不是。

例如,在GentooLinux中,有一个单独的小分区专用于保存Linux内核与引导信息。

大多数情况下,我们不安装这个分区,这样在系统意外崩溃或重新引导时,就不会把它弄乱。

这些,我们讨论的是GRUB,需要指定GRUB的root分区。

进入root分区时,GRUB将把这个分区安装成只读型,这样就可以从该分区中装入Linux内核。

GRUB的一个很“酷”的功能是它可以读取本机的FAT、FFS、minix、ext2和ReiserFS分区,我们很快就会讨论这个功能。

但现在,让我们输入root分区。

在提示中输入root,但不要按Enter键:

grub>;root(现在,按一次Tab键。

如果系统中有多个硬盘,GRUB将显示可能完成的列表,从"hd0"开始。

如果只有一个硬盘,GRUB将插入"hd0,"。

如果有多个硬盘,继续进行,在("hd2"中输入名称并在名称后紧跟着输入逗号,但不要按Enter键。

部分完成的root

命令看起来如下:

grub>;root(hd0,

现在,继续操作,再按一次Tab键。

GRUB将显示特定硬盘上所有分区的列表,以及它们的文件系统类型。

在我的系统中,按Tab

键时得到以下列表:

grub>;root(hd0,(tab)

Possiblepartitionsare:

Partitionnum:

0,Filesystemtypeisext2fs,partitiontype0x83

Partitionnum:

1,Filesystemtypeunknown,partitiontype0x82

Partitionnum:

2,Filesystemtypeunknown,partitiontype0x7

Partitionnum:

4,Filesystemtypeisreiserfs,partitiontype0x83

Partitionnum:

5,Filesystemtypeisreiserfs,partitiontype0x83

如您所见,GRUB的交互式硬盘和分区名称实现功能非常有条理。

这些,只需要好好理解GRUB新奇的硬盘和分区命名语法,然后就

可以继续操作了。

GRUB-GRUB命名约定

到目前为止,您可能会感到一点困惑,因为GRUB所使用的硬盘/分区命名约定与Linux使用的命名约定不同。

在Linux中,第一个硬盘的第五个分区称作"hda5"。

而GRUB把这个分区称作"(hd0,4)"。

GRUB对硬盘和分区的编号都是从0开始计算。

另外,硬盘和分区都用逗号分隔,整个表达式用括号括起。

现在,回来看一下GRUB提示,可以发现如果要引导Linux硬盘hda5,应输入"root(hd0,4)"。

如果已经明白了GRUB硬盘/分区命名,您也许要调整当前root命令行,以使它指向保存Linux内核的分区。

按以下格式输完命令,然后按Enter键:

grub>;root(hd0,4)(hitenter)

Filesystemtypeisreiserfs,partitiontype0x83

GRUB-装入内核

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

在GRUB提示中,依次输入"kernel"、空格、到内核的路径、空格、内核参数,如root参数(GRUB将自动插入适当的"mem="参数)。

我在我的系统中输入:

grub>;kernel/boot/bz2.4root=/dev/hda5

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

请留意"root="内核参数,它非常重要。

它应该指向保存root文件系统的Linux分区。

您也许要写下到目前为止输入的命令,这样在教程后面讲述如何创建GRUB引导菜单时,就可以迅速找到它们。

Root,内核,引导!

您已经安装了root文件系统并装入了内核。

现在,可以引导了。

只要输入"boot",Linux引导过程就将开始。

GRUB-重新调查引导软盘

如果一切正常,就可以使用使用GRUB引导盘来引导当前Linux发行版。

如您所见,GRUB是功能非常强大的引导装入器,它让您可以随意动态配置以进行引导。

我将向您介绍如何创建GRUB引导菜单,这样就可以从菜单中进行OS选择,而不是输入三行命令

来引导Linux。

但在动手之前,现在是深入了解GRUB幕后是如何工作的好时机。

我将说明引导盘引导过程的工作原理,这样您就可以对GRUB有一个更好的评价和了解。

GRUB-两阶段过程

要制作引导软盘,需要做两件事--将文件复制到软盘的ext2文件系统的/boot/grub目录中,运行GRUB的安装程序。

运行GRUB安装程序时,GRUB将"stage1"装入器安装到软盘的引导记录中。

它还将stage1装入器配置成从ext2文件系统直接装

入stage2。

通常,GRUB通过在包含stage2数据的软盘上创建一列块来完成此操作,这样stage1装入stage2时不必知道ext2文件系统的任何情况。

但是,大多数情况下,GRUB在安装完stage1之后,会立即将stage1.5装入器安装到引导记录中。

这个特殊的stage1.5允许无需使用原始块列表就能从ext2文件系统装入stage2,却要更灵活的标准基于路径的方法。

GRUB理解文件系统结构的这一能力使GRUB比LILO更强壮。

例如,如果正好在整理引导盘文件系统的碎片,stage1就可以找到stage2(归功于ext2stage1.5)。

而LILO就不能完成此项操作。

因为LILO只能依赖于映射文件,每次更新内核或在磁盘上物理移动数据时,即使不更改路径,也需要重新运行它。

阶段1、1.5和2第3页

您也许会想知道:

如果使用FAT而不是ext2文件系统创建引导盘,GRUB是否可以工作。

是的,它可以工作,因为在输入"setup(fd0)"时,GRUB会安装与root文件系统类型匹配的stage1.5。

即使没有没有空间可以安装stage1.5,GRUB仍可以通过追溯到更原始的块列表,来装入stage2

GRUB-搜索和恢复

在继续讨论之前,先研究一个与引导软盘相关的实用提示。

由于GRUB的交互式性质,它为恢复软盘生成了一个很好的引导装入器。

但是,如果将好的内核复制到引导盘上,那它就更好了。

那样,即使硬盘上的内核坏了或者被意外删除了,也可以追溯到引导盘内核,并启动和运行系统。

要将备用内核复制到引导盘,执行以下操作:

#mount/dev/fd0/mnt/floppy

#cp/path/to/bzImage/mnt/floppy/boot

#umount/dev/fd0

现在,软盘已包含备用内核,可以在GRUB中使用它来引导Linux发行版,操作如下:

grub>;root(fd0)

grub>;kernel/boot/bzImageroot=/dev/hda5(将/dev/hda5更改成想要引导的分区名称)

grub>;boot

GRUB-硬盘引导

好,现在如何将GRUB安装到硬盘上?

这个过程几乎与引导盘安装过程一样。

首先,需要决定哪个硬盘分区将成为rootGRUB分区。

在这个分区上,创建/boot/grub目录,并将stage1和stage2文件从/usr/share/grub/i386-pc复制到该目录中。

可以通过重新引导系统并使用引导盘,或者使用驻留版本的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-引导菜单

要创建菜单,只需在/boot/grub中创建一个简单的文本文件menu.lst。

如果将它放在正确位置,它将在rootGRUB驱动器的stage1和stage2文件的旁边。

这里是一个样本menu.lst文件,可以将它作为一个您的菜单的基础:

default0

timeout30

colorwhite/blueblue/green

title=BootLinux

root(hd0,4)

kernel/boot/bzImageroot=/dev/hda5

title=BootLinuxusinginitrd

root(hd0,5)

kernel/boot/bzImageroot=/dev/loop0init=/initdisk.gz

initrd/initdisk.gz

title=WindowsNT

root(hd0,3)

chainloader+1

我将在以下的屏面中说明menu.lst格式。

GRUB-理解引导菜单

引导菜单很容易理解。

前三行设置缺省菜单项(项目号0,第一个)、设置超时值(30秒),并选择整个菜单的一些颜色。

接着的三行配置"BootLinux"菜单项。

要创建手工引导命令系列之外的菜单项,只要添加一行"title="作为第一行,并从最后一行中除去"boot"命令(GRUB会自动添加这个命令)。

接着的四行显示了如何使用GRUB来引导initrd(初始root磁盘),如果您愿意的话。

现在,讨论最后三行……

链式装入器

这里是示例menu.lst的最后三行……

title=WindowsNT

root(hd0,3)

chainloader+1

这里,我添加了一项来引导WindowsNT。

要完成此操作,GRUB使用了“链式装入器”。

链式装入器从分区(hd0,3)的引导记录中装入NT自己的引导装入器,然后引导它。

这就是这种技术叫做链式装入的原因--它创建了一个从引导装入器到另一个的链。

这种链式装入技术可以用于引导任何版本的DOS或Windows。

GRUB-GRUB的弹性

GRUB最好的优点之一就是其强健的设计--在不断使用它时请别忘了这点。

如果更新内核或更改它在磁盘上的位置,不必重新安装GRUB。

事实上,如有必要,只要更新menu.lst文件即可,一切将保持正常。

只有少数情况下,才需要将GRUB引导装入器重新安装到引导记录。

首先,如果更改GRUBroot分区的分区类型(例如,从ext2改成ReiserFS),则需要重新安装。

或者,如果更新/boot/grub中的stage1和stage2文件,由于它们来自更新版本的GRUB,很有可能要重新安装引导装入器。

其它情况下,可以不必理睬!

在这里只是介绍了GRUB的一部分。

如需所有GRUB功能的完整描述,请阅读GRUB出色的GNU文档。

只要在bash提示中输入

"infogrub"就可以阅读该文档。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 工作总结汇报

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1