蓝森林首页 | 返回主页 | 本站地图 | 站内搜索 | 联系信箱 |
 您目前的位置:首页 > 自由软件 > 技术交流 > 系统管理


    

蓝森林 http://www.lslnet.com 2006年8月18日 15:18


GRUB多重启动管理器



1. 什么是grub
  grub 是一个多重启动管理器。grub是GRand Unified Bootloader的缩写,它可以在
多个操作系统共存时选择引导哪个系统。它可以引导的操作系统包括Linux,FreeBSD,So
laris,NetBSD,BeOSi,OS/2,Windows95/98,Windows NT,Windows2000。它可以载入操作系
统的内核和初始化操作系统(如Linux,FreeBSD),或者把引导权交给操作系统(如Win
dows 98)来完成引导。
2. grub的特点
  grub可以代替lilo来完成对Linux的引导,特别适用于linux与其它操作系统共存情
况,与lilo相比,它有以下特点:
支持大硬盘
  现在大多数Linux发行版本的lilo都有同样的一个问题:根分区(/boot分区)不能分
在超过1024柱面的地方,一般是在8.4G左右的地方,否则lilo不能安装,或者安装后不
能正确引导系统。而grub就不会出现这种情况,只要安装时你的大硬盘是在LBA模式下,
grub就可以引导根分区在8G以外的操作系统。
支持开机画面
  grub支持在引导开机的同时显示一个开机画面。对于玩家来说,这样可以制作自己
的个性化开机画面;对于PC厂商,这样可以在开机时显示电脑的一些信息和厂商的标志
等。grub支持640x480,800x600,1024x768各种模式的开机画面,而且可以自动侦测选择
最佳模式,与Windows那320x400的开机画面不可同日而语。
两种执行模式
  grub不但可以通过配置文件进行例行的引导,还可以在选择引导前动态改变引导时
的参数,还可以动态加载各种设备。例如你在Linux下编译了一个新的核心,但不能确定
它能不能工作,你就可以在引导时动态改变grub的参数,尝试装载这个新的核心进行使
用。Grub的命令行有非常强大的功能,而且支持如bash或doskey一样的历史功能,你可
以用上下键来寻找以前的命令。
菜单式选择
  在lilo下,你需要手工输入操作系统的名字来引导不同的操作系统。而grub使用一
个菜单来选择不同的系统进行引导。你还可以自己配置各种参数,如延迟时间,默认操
作系统等。
分区位置改变后不必重新配置
  lilo是通过读取硬盘上的绝对扇区来装入操作系统,因此每次分区改变都必须重新
配置lilo,例如你用PQ magic调整了分区的大小,那lilo在你重新配置好之前就不能引
导这个分区的操作系统了。而grub是通过文件系统直接把核心读取到内存,因此只要操
作系统核心的路径没有改变,grub就可以引导系统。 除此之外,Grub还有许多非常强大
的功能。例如支持多种外部设备,动态装载操作系统内核,甚至可以通过网络装载操作
系统核心。Grub支持多种文件系统,支持多种可执行文件格式,支持自动解压,可以引
导不支持多重引导的操作系统等。
3. grub的使用
安装grub
  如果已经安装了蓝点Linux2.0则grub是默认安装的。要把grub重新安装到主引导扇
区上,只需要简单打入makebootable命令就可以了。
制作grub启动盘
  首先确定grub已经安装,然后进入grub的目录,键入:
  #cd /boot/grub
  放入一张软盘,然后敲入命令:
  #dd if=stage1 of=/dev/fd0 bs=512 count=1
  #dd if=/stage2 of=/dev/fd0 bs512 seek=1
  这样就可以做好一张启动盘了。
开机
  安装了grub开机后会出现一个菜单,列出所有的启动选项。如果设置了启动画面则
会显示启动画面,按Esc键则可以取消启动画面显示菜单选项。蓝点Linux所带的grub的
命令提示是全中文的,在菜单下面详细列出如按e是编辑启动命令,按c是使用命令行等
。用上下键可以选择菜单项,按回车启动所选项。按e键可以编辑所选项的启动命令,你
可以用这个功能临时改变你的系统的启动参数,参见配置grub一节。按c键则进入命令行
模式。   
  在命令行模式下可以打入命令直接执行,例如你可以敲入poweroff关闭计算机。按
Tab键可以列出所有支持的命令。蓝点Linux已经把grub汉化了,其中一部分命令敲入名
字后会给出中文提示,显示命令的用法和参数。
4. 配置grub
  grub启动时会在/boot/grub/中寻找一个名字为menu.lst的配置文件,如果找不到此
文件则不进入菜单模式而直接进入命令行模式。
  menu.lst 是一个文本文件,你可以用任何一个文本编辑器来打开它。每一行代表一
个配置命令,如果一行的第一个字符为井号"#"则这一行为注释,你可以简单地用增加或
减少注释行来改变配置。
编辑menu.lst,一般会有以下各行
timeout second
设定在second秒之后引导默认的操作系统。
蓝点Linux默认是timeout 5,就是5秒没有其他指令就引导系统,如果设成-1,则grub会
一直等待直到用户选择一个选项为止。
default num
默认启动第num+1行选项,也就说default=0则默认启动菜单第一行的操作系统,defaul
t=1则启动第2行的系统,如此类推。
splash pathname/filename
指出开机画面的文件所存放的路径和文件名,如 splash /boot/logo/800x600x8.img 是
指用在/boot/logo路径下的800x600.img文件作为开机画面
title OSname title
后面的字符就是你在菜单项上所看见的选项,你可以写上操作系统的名字和描述,如用
title BluePoint Linux, Single Mode 代表这一选项是引导蓝点Linux的单用户模式。
下面结合两个系统引导描述来解释几个引导选项的意义
title BluePoint Linux, Default Mode
root (hd0,1)
kernel /boot/vmlinuz vga=auto root=/dev/hda2
hd0是指第一个硬盘(主硬盘) (hd0,1)是指第一个硬盘的第二个分区。 kernel /boot/v
mlinuz 是指出Linux核心的路径在/boot/vmlinuz中。vga=auto 是设定显示模式,root
=/dev/hda2是指把第一个硬盘的第二个分区作为根挂载点("/")。
title Microsoft Windows
root (hd1,0)
chainloader (hd1,0)+1
root (hd1,0)这是指第二个硬盘(从硬盘)上第一个分区
chainloader (hd1,0)+1 装入一个扇区的数据然后把引导权交给它。
5. 从软盘启动grub
  制作启动盘后可以用软盘启动引导硬盘上的操作系统 插入制作好的启动软盘,进入
BIOS设定软盘启动。软盘启动成功后就会进入grub的命令行模式
grub>;
  要启动一个操作系统,首先指定引导哪个分区上的系统,例如要引导指第一个硬盘
上的第一个分区的操作系统,先键入
grub>;root (hd0,0)
  接着如果要启动的是Windows系统,键入
grub>;chainloader (hd0,0)+1
  注意(hd0,0)要随着硬盘和分区的不同而改变数字。 如果要引导Linux或其他系统,
应键入
grub>;kernel (hd0,0)/boot/vmlinuz root=/dev/hda1
  注意hda1参数也要随着硬盘和分区的不同而改变,如从第二个硬盘的第一个分区引
导则用hdb1。
  最后敲入boot就可以启动系统了。
  在任何时候不能确定命令或者命令的参数都可以按Tab获得相关的帮助。用上下键可
以获得命令的历史记录。 其实这些命令就是menu.lst的启动描述,您也可以根据那些描
述来自己键入启动命令,最后敲入boot就可以引导系统了。

GRUB多重启动管理器

[这个贴子最后由boss2002在 2002/10/10 02:21pm 编辑]


GRUB多重启动管理器

To: wind521
  我的机子装有三个操作系统,分别为 Win2000, win98, Red Hat Linux 7.3
  硬盘有两个主分区,一个扩展分区(也就是双C盘),我的Win2000,win98分别装到两主分区中,Linux装到扩展分区,如下:
  /dev/hda3 (win98,主分区)
  /dev/hda1 (win2000, 主分区)
  /dev/hda6 (Linux, 扩展分区中的一个逻辑分区)
由于我使用的是双C盘,只能有一个主分区是活动的,有一个主分区是不活动(也就是隐藏的)
装完Linux后,Grub菜单中只Win2000和Linux两个菜单项,没有Win98菜单项,为此我自己做了一张用Grub引导硬盘中的操作系统的软盘,可以引导Win2000和Linux,就是Win98引导不了
望 wind521 大侠指点迷津,以下是Grub引导的过程:

Win2000:
  rootnoverify (hd0,0)
  chainloader +1
  boot
  ....... OK

Linux:
  root (hd0,5)
  kernel /boot/vmlinuz-2.4.18-3 or root=/dev/hda6
  boot
  ......OK

Win98:
  rootnoverify (hd0,2)
  chainloader +1
  boot
  ........
  可以引导,  在引导的过程中读了 IO.SYS 和 MSDOS.SYS, 可以看到Win98的开机画,后出见 C>; 提示符,提示中说明找不到COMMAND.COM文件.
  这个Win98是没有问题的,是不是因为双C盘的原因(Win98的分区为隐藏)?
  请知道如何解决的大侠指点迷津
  小弟的QQ:81365304
      Mail:hds2008@hotmail.com

GRUB多重启动管理器

应该是这样的
如果你想的话,用lilo去看一下能解决不,我一般都是将双windows作到一起
然后再与linux结合起来

GRUB多重启动管理器

我安装GRUB后能uninstall它吗? 怎样uninstall GRUB? 谢谢指教

GRUB多重启动管理器

不用uninstall,如果你将主引导扇区重新写一下就OK了
用lilo去写一下


GRUB多重启动管理器

To: wind521
  那个问我搞得了,不好意思了,用Grub中的 hide、unhide。

GRUB多重启动管理器

我在安装蓝点2。0后不能用GRUB引导,好象是没有找到一个stat*。1。5什么来的文件,以至不成功。后被我用FDISK/MBR删除了,请教如何恢复。那个STAT???是什么文件来的,好象用有三个吧,怎样处理。在运行GRUB时我的不知怎么回事,C:盘主引导区数据丢失,从硬盘启动时,显示“EM DISK ;I/O ERROR”在后面就是没有引导区。害我忙了半天,找卖主(在电脑城买的10。2G,我的老板不支持,LINUX被安装到了8。4G后,闲着也是闲着吗),找修理。后来才知是引导区没了,EM DISK 是什么意思来的呀??-)

GRUB多重启动管理器

hehe

GRUB多重启动管理器

是否有grub的命令总结?

GRUB多重启动管理器

能否告诉我前面的几个问题的答案!
哪个什么GRub命令怎样用?

GRUB多重启动管理器

命令行可以执行grub ,会启动他的编辑器。

可以可以直接改/boot/grub/grub.conf

GRUB多重启动管理器

null

GRUB多重启动管理器

To: wind521

启动时在grub下用什么命令可以改变登陆的形式呢,比如原来是以图形模式登陆到系统的,改成文本形式登陆到系统,并且不修改/etc/inittab文件,使下一次的登录形式不受着一次的改变所影响,另外,在grub下可不可修改/etc/inittab文件?(我没试过,下午回去试一下) 谢谢!

GRUB多重启动管理器

这个可能比较难

grub只是一个引导的部分,怎么能改inittab呢?

启动后,想进入字符就用控制台来切换不就成了吗?

GRUB多重启动管理器

你说的有道理
只是像下面这样的情况就没办法进入系统:

我前一段时间装redhat8。0的时候,选择了以图形模式登陆到系统,结果没过几天xwindows就坏了,进不了系统,后来不知道什么搞的,在grub引导的时候,用命令更改了登陆的模式,从文本模式登陆到系统,在grub引导的时候有三种可用状态,“c"到命令行模式,“e”到编辑模式,还有一个是“a”,记不清是什么模式了,我现在也不知道当时是在那一个模式下用什么命令进去的


另外,在用lilo引导的时候也可以boot: linux single进入到文本模式的单用户模式下对系统作修复之类的动作,我想,grub也应该用这样的功能,要不在系统出毛病进不去时怎样对系统作修复动作,

GRUB多重启动管理器

在grub引导下,系统启动后,出现grub的引导菜单,用上下健选中所要启动的linux系统,然后按字母“e”,进入编辑模式。之后再选中系统的启动内核项(如:kernel (hd0,0)/boot/vmlinuz or root=/dev/hda1 )再次按字母“e”,出现grub>;提示,
如下:
grub>;kernel (hd0,0)/boot/vmlinuz or root=/dev/hda1
在上面的hda1后空一格,输入init n(init 和n之间有空格,其中n为要求系统进入的运行级别,1 为单用户模式,在这个模式下默认root用户登陆,不要求密码,所以可以在忘记root密码的情况下在这里修改root用户的密码,2 为多用户文本模式(没有NFS),3 为完整的多用户模式(文本),5 为XWINDOWS模式)

完成后如下:

grub>;kernel (hd0,0)/boot/vmlinuz or root=/dev/hda1 init 1

然后回车确认,自动返回前一页面,然后再按字母“b”启动系统就可以以修改后的运行级别进入系统,(在这里的修改只影响本次启动,不会修改系统的/etc/inittab文件)。

GRUB多重启动管理器

请教grub怎么卸载?

GRUB多重启动管理器

mark

GRUB多重启动管理器

还是不够详细



Copyright © 1999-2000 LSLNET.COM. All rights reserved. 蓝森林网站 版权所有。 E-mail : webmaster@lslnet.com