Linux 多重引导MBR与系统引导管理器GRUBWord文档下载推荐.docx

上传人:b****5 文档编号:20614659 上传时间:2023-01-24 格式:DOCX 页数:23 大小:42.51KB
下载 相关 举报
Linux 多重引导MBR与系统引导管理器GRUBWord文档下载推荐.docx_第1页
第1页 / 共23页
Linux 多重引导MBR与系统引导管理器GRUBWord文档下载推荐.docx_第2页
第2页 / 共23页
Linux 多重引导MBR与系统引导管理器GRUBWord文档下载推荐.docx_第3页
第3页 / 共23页
Linux 多重引导MBR与系统引导管理器GRUBWord文档下载推荐.docx_第4页
第4页 / 共23页
Linux 多重引导MBR与系统引导管理器GRUBWord文档下载推荐.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

Linux 多重引导MBR与系统引导管理器GRUBWord文档下载推荐.docx

《Linux 多重引导MBR与系统引导管理器GRUBWord文档下载推荐.docx》由会员分享,可在线阅读,更多相关《Linux 多重引导MBR与系统引导管理器GRUBWord文档下载推荐.docx(23页珍藏版)》请在冰豆网上搜索。

Linux 多重引导MBR与系统引导管理器GRUBWord文档下载推荐.docx

这就是“转交其他loader”的应用)。

当第二个开机管理程式启动后,选择相应的开机选单(上图中仅有一个开机选单),就能够使用Linux的核心档案来开机了。

这就是多重开机的工作情况!

我们将上图作个总结:

∙每个分区都拥有自己的开机磁区(bootsector)

∙图中的系统槽为第一及第二分区;

∙实际可开机的核心档案是放置到各分区内的;

∙loader只会认识自己的系统槽内的可开机核心档案,以及其他loader而已;

∙loader可直接指向或者是间接将管理权转交给另一个管理程式。

现在想一想,为什么人家常常说:

如果要安装多重开机,最好先安装Windows再安装Linux呢?

这是因为:

∙Linux在安装的时候,你可以选择将开机管理程序安装在MBR或各别分区的开机磁区(bootsector),而且Linux的loader可以手动设定选单(就是上图的M1,M2...),所以你可以在Linux的bootloader里面加入Windows开机的选项;

∙Windows在安装的时候,他的安装程式会主动的覆盖掉MBR以及自己所在分区的开机磁区,你没有选择的机会,而且他没有让我们自己选择选单的功能。

因此,如果先安装Linux再安装Windows的话,那MBR的开机管理程序就只会有Windows的项目,而不会有Linux的项目(因为原本在MBR内的Linux的开机管理程式就会被覆盖掉)。

2系统引导管理器GRUB

GRUB是多系统引导管理器,简单的说既能引导Linux,同时也能引导Windows。

本文重点介绍GRUB的menu.lst的写法,另外通过GRUB命令行引导系统也做了详述;

这些无论是对Windows版本的WINGRUB还是Linux版本的GRUB都是适用的;

目录索引

2.1什么是多重操作系统引导管理器,什么是GRUB;

2.1.1、什么是多重操作系统引导管理器及工作原理;

2.1.2、什么是GRUB;

为什么我要选择GRUB;

1)什么是GRUB;

2)为什么要选择GRUB;

2.2GRUB软件包版本选择和安装;

2.2.1、Linux版本的GRUB及Windows版本的GRUB的说明;

2.2.2、GRUB的Windows版本WINGRUB;

2.2.3、GRUB的Linux版本软件包的安装;

2.3在Linux中,GRUB的配置中的安装和写入硬盘的MBR;

2.3.1、在Linux中,GRUB配置过程中的安装grub-install;

2.3.2、设定GRUB的/boot分区并写入MBR;

2.4GRUB的配置文件的menu.lst的写法;

2.4.1menu.lst的写法之一;

1)在menu.lst中,通过root(hd[0-n],y)来指定/boot所在的分区;

2)在menu.lst中,kernel命令行的写法;

3)initrd命令行的写法;

4)menu.lst第一种写法的总结和实践;

1]用fdisk-l;

df-lh;

more/etc/fstab来确认分区情况;

2]查看内核vmlinuz的和initrd文件名的全称;

3]开始写menu.lst;

2.4.2menu.lst的写法之二,精简型;

1)第一种情况:

/boot和Linux的/根分区在同一个分区;

2)第二种情况:

/boot独立一个分区,和Linux的根分区不位于同一分区;

2.5通过GRUB命令行来启动Linux操作系统;

2.5.1、为什么需要学习GRUB的命令行;

2.5.2、用命令行来引导Linux操作系统的步骤;

1)进入GRUB的命令行模式grub>

2)获取帮助GRUB的help

3)cat的用法;

4)root(hd[0-n,y)指令来指定/boot所在的分区;

5)kernel指令,用来指定Linux的内核,及/所在的分区;

6)initrd命令行来指定initrd文件;

7)boot引导系统;

8)引导Linux系统实例全程回放;

2.6通过GRUB引导Windows操作系统;

2.6.1、通过编辑menu.lst来引导Windows系统;

2.6.2、通过GRUB指令来引导Windows;

2.7GRUB丢失或损坏的应对策略;

2.7.1、由于重新安装Windows或其它未知原因而导致GRUB的丢失;

2.7.2、如果出现GRUB提示符,而不出现GRUB的菜单,如何引导系统;

2.8参考文档;

2.9相关文档;

++++++++++++++++++++++++++++++++++++++++++++++++++++++++

正文

一、什么是多重操作系统引导管理器,什么是GRUB

1、什么是多重操作系统引导管理器及工作原理;

系统启动引导管理器,是在计算机启动后运行的第一个程序,他是用来负责加载、传输控制到操作系统的内核,一旦把内核挂载,系统引导管理器的任务就算完成退出,系统引导的其它部份,比如系统的初始化及启动过程则完全由内核来控制完成。

Briefly,bootloaderisthefirstsoftwareprogramthatrunswhenacomputerstarts.Itisresponsibleforloadingandtransferringcontroltotheoperatingsystemkernelsoftware(suchastheHurdortheLinux).Thekernel,inturn,initializestherestoftheoperatingsystem(e.g.GNU).

在X86架构的机器中,Linux、BSD或其它Unix类的操作系统中GRUB、LILO是大家最为常用,应该说是主流。

Windows也有类似的工具NTLOADER;

比如我们在机器中安装了Windows98后,我们再安装一个WindowsXP,在机器启动的会有一个菜单让我们选择进入是进入Windows98还是进入WindowsXP。

NTLOADER就是一个多系统启动引导管理器,NTLOADER同样也能引导Linux,只是极为麻烦罢了。

目前X86架构的机器仍是主流,所以目前GRUB和LILO仍然是我们最常用的多重操作系统引导管理器。

2、什么是GRUB;

为什么我要选择GRUB

1)什么是GRUB

GNUGRUB是一个多重操作系统启动管理器。

GNUGRUB是由GRUB(GRandUnifiedBootloader)派生而来。

GRUB最初由ErichStefanBoleyn设计和应用;

GNUGRUBisaMultibootbootloader.ItwasderivedfromGRUB,GRandUnifiedBootloader,whichwasoriginallydesignedandimplementedbyErichStefanBoleyn.

基于在X86架构的CPU而开发操作系统,系统引导管理器不仅仅有GRUB,而且也有LILO,但对于多重系统引导管理器,你只能选择其一而用;

不能两个同时使用;

目前这两个多重系统引导管理器是大家最常用的,也是主流Linux发行版而采用的。

主流发行版Fedora、Redhat、CentOS等基于RPM包的系统,在最新版本中都默认GRUB引导;

Slackware目前仍采用LILO;

而Debian发行版目前最新的版本也是采用GRUB;

二、GRUB软件包版本选择和安装

1、GRUB的版本选择,Linux版本的GRUB及Windows版本的GRUB的说明

GRUB不但有Linux版本,也有Windows版本。

如前面所说,目前在在Unix类的操作系统中,大多是都有GRUB;

GRUB几乎能引导所有X86架构的操作系统;

功能之强,使用简单是GRUB最大的卖点;

由于Windows操作系统的先入为主的优势,使得大家对Windows的NTLOADER了解的比较多,而对开源社区的GRUB显得有点陌生,由此而带来使用上的“心理恐惧”;

究其初学者对GRUB“恐惧”的主要原因还是对GRUB没有太多的了解和深入;

无论是WINGRUB还是Linux版本的GRUB,最方便的还是对GRUB命令行的操作。

2、GRUB的Windows版本WINGRUB

请参考:

《以WINGRUB引导安装Fedora4.0为例,详述用WINGRUB来引导Linux的安装》

3、GRUB的Linux版本软件包的安装

其实对于Linux的GRUB,几乎所有的Linux主流发行版都有打包,如果您安装了Linux,并且在开机后出现GRUB字样的,证明您已经安装了GRUB;

而无需再次安装;

Linux的GRUB软件包安装部份并不是本文的重点。

如果您的Linux系统没有安装GRUB,或者采用的是LILO,而您想用GRUB,可以用系统安装盘自带GRUB软件包来安装,或者到相关发行版本的软件仓库下载后安装。

GRUB的Linux版本目前在各大发行版中都有打包;

比如Fedora/Redhat/Centos/Mandrive/Mandriva/SuSE等以RPM包管理机制的系统,可以通过如下的命令来安装;

请参考《Fedora/Redhat软件包管理指南》

[root@localhost~]#rpm-ivhgrub*.rpm

如果是Slackware您可以用如下的办法来安装;

[root@localhost~]#installpkggrub*.tgz

其它的发行版本请用其自己特色的软件包管理工具来安装。

当然也可以通过源码包,在任何Linux的发行版上安装。

至于源码包的安装方法,

《如何编译安装源码包软件》

[root@localhost~]#tar-zxvfgrub*.tar.gz

[root@localhost~]#cdgrub-xxx

[root@localhost~]#./configure;

make;

makeinstall

确认是否成功安装了GRUB,可以测试是否有如下两个命令;

[root@localhost~]#grub

[root@localhost~]#grub-install

如果不能找到这两个命令,可能可执行程序的路径没有设置;

《设置可执行程序路径》,当然可以用绝对路径;

比如下面的;

[root@localhost~]#/usr/sbin/grub

[root@localhost~]#/usr/sbin/grub-install

如果还是找不到GRUB软件包安装在哪了;

可以用下面的命令来解决和查找;

[root@localhost~]#updatedb注:

这个要花很长时间;

是索引slocate的库,然后再通过locate来查找;

[root@localhost~]#locategrub

比如找到的是有类似如下的;

/sbin/grub-md5-crypt

/sbin/grub

/sbin/grub-install

/sbin/grub-terminfo

在一般情况下,在路径中带有bin或sbin中字样的,这些路径下都是可执行程序;

sbin是超级权限用户才能使用的管理命令;

要使用这些命令一般的情况下得切换到root用户下才能使用;

比如

[beinan@localhost~]$su-注:

切换到root用户,并且切换到其家目录;

Password:

[root@localhost~]#/sbin/grub注:

用绝对路径来运行grub命令;

三、在Linux中,GRUB的配置中的安装和写入硬盘的MBR

1、在Linux中,GRUB配置过程中的安装grub-install;

grub-install命令有何用呢?

其实就是把我们前面已经安装的软件包中的一些文件复制到/boot/grub中;

对于新安装GRUB软件包后,也是一个必经的过程;

我们前面所说的GRUB软件包的安装;

而现在我们说的是GRUB配置的过程中的安装;

虽然在洋文中都是install,但表达的意思是不一样的;

我们首先要运行fdisk-l来确认到底是硬盘的标识;

这个过程主要是确认硬盘的标识是哪个调备,到底是/dev/hda还是/dev/hdb还是其它的;

[root@localhost~]#fdisk-l

Disk/dev/hda:

80.0GB,80026361856bytes

255heads,63sectors/track,9729cylinders

Units=cylindersof16065*512=8225280bytes

DeviceBootStartEndBlocksIdSystem

/dev/hda1*19707791493+7HPFS/NTFS

/dev/hda2971972970356667+5Extended

/dev/hda5971291515623181bW95FAT32

/dev/hda6291641319767488+83Linux

/dev/hda7413255901171938683Linux

/dev/hda8559168069767488+83Linux

/dev/hda9680796572290062683Linux

/dev/hda1096589729578308+82Linuxswap/Solaris

如果通过fdisk-l出现有/dev/hda字样的,我们就要用下面的命令来安装;

[root@localhost~]#grub-install/dev/hda

Installationfinished.Noerrorreported.

Thisisthecontentsofthedevicemap/boot/grub/device.map.

Checkifthisiscorrectornot.Ifanyofthelinesisincorrect,

fixitandre-runthescript`grub-install'

.

(fd0)/dev/fd0

(hd0)/dev/hda

如果是您fdisk-l出现的有/dev/hdb呢,那就如下运行;

[root@localhost~]#grub-install/dev/hdb

如果既有/dev/hda和/dev/hdb就安装到/dev/hda中;

值得注意的是如果您有一个/boot分区,应该用如下的办法来安装;

[root@localhost~]#grub-install--root-directory=/boot/dev/hda

[root@localhost~]#grub-install--root-directory=/boot/dev/hdb

注解:

具体是/dev/hda还是/dev/hdb,请以fdisk-l为准;

如果两个都有,就看您把/boot分区是放在第一块硬盘还是第二块硬盘上了,以实际情况为准;

2、设定GRUB的/boot分区并写入MBR

在Linux中,GRUB软件包的安装,及在配置过程中安装grub到/boot中还是不够的,还要把GRUB,写入MBR才行;

有时我们重新安装了Windows,Windows会把MBR重写,这样GRUB就消失了;

如果您出现这样的情况,就要进行这个过程。

会出现grub>

提示符,这是grub命令行模式,如果能在开机中出现提示符,没有引导不起来的系统,除非您的系统破坏的极为严重。

如果仅仅是GRUB被破坏了,GRUB命令行是能让操作系统引导起来的;

接着看例子,我们要找到/boot/grub/stage1的,在grub>

后面输入;

grub>

find/boot/grub/stage1

(hd0,6)

(fd0)注:

这个是软驱;

现在很少用软驱了,如果您有这方面的需要,自己看GRUB的DOC吧;

(hd0,6)这是/boot所在的分区;

不要误解为是Linux的/所在的分区,这是值得注意的;

root(hd0,6)注:

这是/boot所在的分区;

setup(hd0)注:

把GRUB写到MBR上;

上面这步骤是根据find/boot/grub/stage1而来的,若安装系统是把/boot分区列为一个单独的分区,则:

find/grub/stage1

(hd0,0)

四、GRUB的配置文件的menu.lst的写法

对于GRUB来说,如果没有配置menu.lst,无论是Linux版本的GRUB,还是WINGRUB,都会有命令行可用,通过命令行是一样能把操作系统引导起来的;

有些弟兄总以为menu.lst配置错了,或者在机器启动后出现grub>

命令行模式就要重新安装系统,其实根本没有这个必要;

只要学会GRUB的命令行的用法,根本没有必要重装系统;

menu.lst位于/boot/grub目录中,也就是/boot/grub/menu.lst文件;

您可以用vi或您喜欢的编辑器来编辑他;

如果您不会用vi,还是去学习一下吧;

简单的用法怎么也得会,对不对?

毕竟这个文档不是讲vi的用法的;

有的弟兄会说,我没有menu.lst怎么办?

那就创建一个;

用下面的命令;

[root@localhost~]#touch/boot/grub/menu.lst

然后我们再做一个/boot/grub/menu.lst的链接/boot/grub/grub.conf

[root@localhost~]#cd/boot/grub

[root@localhost~]#ln-smenu.lstgrub.conf

现在我们来写GRUB的menu.lst了,因为/boot/grub/grub.conf是/boot/grub/menu.lst的链接文件,改哪个都行。

链接文件相当于Windows的快捷方式,这样可能有更好的理解;

1、menu.lst的写法之一;

首先我们看一下我的Fedora4.0中的/boot/grub/menu.lst的内容;

default=0

timeout=5

#splashimage=(hd0,6)/boot/grub/splash.xpm.gz

hiddenmenu

titleFedoraCore(2.6.11-1.1369_FC4)

root(hd0,6)

kernel/boot/vmlinuz-2.6.11-1.1369_FC4roroot=LABEL=/

initrd/boot/initrd-2.6.11-1.1369_FC4.img

titleWinXp

rootnoverify(hd0,0)不检验此分割槽

chainloader+1

makeactice设定此分割槽为开机碟?

default=0是默认启动哪个系统,从0开始;

每个操作系统的启动的定义都从title开始的,第一个title在GRUB的启动菜单上显示为0,第二个启动为1,以此类推;

timeout=5

注:

表示在开机后,GRUB画面出现几秒后开始以默认启动;

如果在启动时,移动上下键,则解除这一规则;

#splashimage=(hd0,6)/boot/grub/splash.xpm.gz注:

GRUB的背景画面,这个是可选项;

我不喜欢GRUB的背景画面,所以加#号注掉,也可以删除;

hiddenmenu

隐藏GRUB的启动菜单,这项也是可选的,也可以用#号注掉;

一般的情况下对Linux操作系统的启动,一般要包括四行;

title行;

root行;

kernel行;

initrd行;

titleXXXXX注:

title后面加一个空格,title是小写的,后面可以自己定义;

比如FC4,自己定义一个名字就行;

root(hd[0-n],y),在本例中,我们看到的是root(hd0,6),root(hd[0-n],y)表示的是/boot所在的分区;

有时我们

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

当前位置:首页 > 初中教育 > 中考

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

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