Grub磁盘分区配置详解.docx

上传人:b****6 文档编号:7308070 上传时间:2023-01-22 格式:DOCX 页数:7 大小:19.51KB
下载 相关 举报
Grub磁盘分区配置详解.docx_第1页
第1页 / 共7页
Grub磁盘分区配置详解.docx_第2页
第2页 / 共7页
Grub磁盘分区配置详解.docx_第3页
第3页 / 共7页
Grub磁盘分区配置详解.docx_第4页
第4页 / 共7页
Grub磁盘分区配置详解.docx_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

Grub磁盘分区配置详解.docx

《Grub磁盘分区配置详解.docx》由会员分享,可在线阅读,更多相关《Grub磁盘分区配置详解.docx(7页珍藏版)》请在冰豆网上搜索。

Grub磁盘分区配置详解.docx

Grub磁盘分区配置详解

Grub引导程序的安装、配置及使用汇总

(一)安装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

  #Notethatyoudonothavetorerungrubaftermakingchangestothisfile

  #NOTICE:

Youhavea/bootpartition.Thismeansthat

  

  #allkernelandinitrdpathsarerelativeto/boot/,eg.

  #root(hd0,6)

  #kernel/vmlinuz-versionroroot=/dev/hda10

  #initrd/initrd-version.img

  

  #boot=/dev/hda

  

  default=0

  

  timeout=10

  

  splashimage=(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<--

  titleMicrosoftWindowsXP

  rootnoverify(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,第二个主分区为hda2,第一个逻辑分区为hda5,而在grub中是以(hdx,y)来标识的,如第一个主分区为(hd0,0)第一个逻辑分区为(hd0,4)依此类推.所以这儿root后面的是你的/boot所在分区标识.

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

  kernel/vmlinuz-2.2.18-14roroot=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来引导.

   

  (四).恢复被windows破坏的grub.

  如果你用grub来引导linux和windows,当windows出毛病重新安装后,会破坏MBR中的grub,这时需要恢复grub.

  

  1.把linux安装光盘的第一张放到光驱,然后重新启动机器,在BOIS中把系统用光驱来引导。

  2.等安装界面出来后,按[F4]键,也就是linuxrescue模式。

  3.一系列键盘以及几项简单的配制,过后就[继续]了。

这个过程,我不说了,比较简单。

  4.然后会出现这样的提示符:

  sh#

  

  5.我们就可以操作GRUB了.输入grub:

  sh#grub

  会出现这样的提示符:

  grub>

  我们就可以在这样的字符后面,输入:

  grub>root(hdX,Y)

  grub>setup(hd0)

  如果成功会有一个successful......

  这里的X,如果是一个盘,就是0,如果你所安装的linux的根分区在第二个硬盘上,那X就是1了;Y,就是装有linux系统所在的根分区。

setup(hd0)就是把GRUB写到硬盘的MBR上。

  (五).用NTLoader来引导linux.

  如果你在安装linux时没有选择安装grub,不必着急,现在我们来看看如何在安装linux后安装grub.并用windows的NTLoader来引导linux.

  1.安装grub

  我用的grub是Redhat8.0带的grub安装包:

grub-0.92-7.rpm

安装:

rpm-ivhgrub-0.92-7.rpm

  2.建立grub的环境

  cp/usr/share/grub/i386-pc/*/boot/grub

  3.生成grub的配置文件/boot/grub/menu.conf

  按照上面所讲的grub.conf来生成一个配置文件.

  注意了,这里我的linux在/dev/hda4,所以menu.conf那些分区位置为(hd0,3),

  你的可能不一样了,不能完全照着"画瓢"噢!

下面第3步install的中的分区位置也应该和你的系统一致.

  

  3.安装grub至Linux分区boot

  

  将grub的stage1安装到/dev/hda4的boot扇区(hd0,3).过程如下:

  

  /sbin/grub(运行grub)

  

  grub>install(hd0,3)/boot/grub/stage1d(hd0,3)(hd0,3)/boot/grub/stage2p(hd0,3)/boot/grub/menu.conf

  (注意,上面"grub>"为grub的提示符,其后内容写在一行上.)

  

  4.取得grub的boot信息

  过程如下:

  ddif=/dev/hda4of=/grub.lnxbs=512count=1

  这样得到grub的引导信息,只要用NTLoader来加载它就行了.

  5.将上面得到的grub.lnx弄到Windows的C盘根目录下

  可以先把grub.lnx弄得软盘上,然后启动windows,拷贝到C:

;情况允许也可以直接在Linux下拷贝到C:

了.我的C盘(即设备/dev/hda1)为FAT32,可以直接从Linux下弄过去了.如下:

  

  mount-tvfat/dev/hda1/mnt/c

  

  cp/grub.lnx/mnt/c

  

  umount/mnt/c

  

  6.修改NTLoader的boot.ini

  在其中加入一行:

C:

grub.lnx="RedhatLinux-GRUB"

  加入后boot.ini的内容如下:

  [bootloader]

  

  timeout=15

  default=C:

boot.lnx

  [operatingsystems]

  multi(0)disk(0)rdisk(0)partition

(1)WINDOWS="MicrosoftWindowsXPProfessional"/fastdetect

  [VGAmode]"/basevideo/sos

  C:

grub.lnx="RedhatLinux-GRUB"

  

  OK.可以用NTLoader加载Linux了,其实上面过程基本上和用NTLoader加载LILO一样.其基本思想就是用NTLoader来加载LILO或grub的引导区(grub.lnx),其中的关键就是LILO或grub的引导区的获取.

  (六)活用grub的交互功能

  grub具有强大的交互功能.学会了将会使你受益非浅!

  1.grub没有显示菜单怎么办?

  当开机后进入grub界面但没了菜单,只剩下一个grub>提示符,怎么启动呢?

别急,看下面:

grub>cat(hd0,6)/boot/grub/grub.conf(为了看参数)

  grub>root(hd0,6)

  grub>kernel(hd0,6)/vmlinuz-2.4.18-14roroot=LABEL=/

  grub>initrd(hd0,6)/initrd-2.4.18-14.img

  grub>boot

  OK!

启动了吧!

以上有些数字要根据你的实际情况更改.

  以上这个方法也可以用于测试新编译的内核.

  2.进入单用户模式.

  有时不小心把root用户密码忘了,只能进入单用户模式来重新设置root密码.方法如下:

  开机进入grub界面,按C进入命令行模式,然后按照上面的方法进行,只是在第三步要在后面加入single参数。

到GRUB的设置的那一块。

我们要把GRUB安装到MBR上。

这样就把mandrake的GRUB覆盖。

这也没有什么可怕的,我们可以把它加在Redhat的GRUB中,系统安装好后,我们设置一下就行了。

只是修改一个文件/etc/grub.conf

4.如何修改/etc/grub.conf

一般的发行版,GRUB的配置文件都在/etc/grub.conf中,如果我们安装了多个linux,就要修改这个文件。

那我们如何修改呢?

一般的情况下,windows是自动加载到了grub.conf中,打开grub.conf,就能看到windows的设置情况。

可能有时系统会突然出现不能引志windwows的情况,我们就要下面的类似的改动一下。

titleDOS

rootnoverify(hd0,0)

chainloader+1

改成

titleWinXP在这里,title是必须的,WinXP,您可以用别的名,您喜欢怎么样就怎么样。

root(hd0,0)

chainloader+1

这样就能启动了。

2.如何把其它的linux的引导加入到GRUB来引导呢?

我们可以用下面的方法。

也是比较简单。

GRUB引导linux系统,就是靠三行来定义。

titleXXX

在这里,XXX是您要引导的操作系统的名字。

可以自己来定。

root(hdX,Y)

在这里,X和Y都代表一个数值。

X是linux的根分区在哪个硬盘上。

如果您只有一个硬盘。

那就是hd0。

如果您的linux的一个发行版是安装在第二个硬盘,这个X,就是1。

那Y代表什么?

Y是代表您所安装的linux是在哪个区。

这个数值有点不同。

用原理没有办法说清楚。

应该用实例来说。

比如我把mandrake安装到hda8了。

那他的root(hdX,Y),就应该写为root(hd0,7),也是说是linux所在的根分区hdaZ中的Z减去1就是这个Y的数值:

在这之中,hdaZ或者hdbZ中的Z也是一个数值。

看一下上面的例子就明白了。

用fdisk-l或者df-la来查看

kernel/boot/vmlinuzroot=/dev/hdaZ

这里中的Z,也是一个数值,接着上面的例子,我们把Mandrake的引导加入到Redhat的GRUB中。

就可以写成如下的样子:

kernel/boot/vmlinuzroot=/dev/hda8

通过上面的分析,我们要让Redhat的GRUB来引导Mandrake9.0,我们要改动Redhat中的GRUB的配置文件,加入下面的一段:

titleMD8.0

root(hd0,7)

kernel/boot/vmlinuzroot=/dev/hda8

如果您想加入其它的操作系统到Redhat中的GRUB中,也不过是如此,如者用其它发行版中的GRUB来引导别的发行版,原理也是一样的。

GRUB是不是很简单?

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

当前位置:首页 > 高等教育 > 研究生入学考试

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

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