Chinaunix首页 | 论坛 | 博客
  • 博客访问: 104594952
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: LINUX

2008-04-30 09:05:55

作者:吴迪 来源:开放系统世界—赛迪网 

目前,PC的性能越来越强大,尤其是超大容量的硬盘使我们有足够的地方去安装多个操作系统。Linux下最常用的多重启动软件就是LILO和Grub。

LILO是现在许多Linux缺省的引导程序,它的全称是Linux Loader,拥有很强大的功能。Grub 也是一个多重启动管理器,它的全称是Grand Unified Bootloader。Grub的功能与LILO一样,也是在多个操作系统共存时选择引导哪个系统。它可以引导很多PC上常用的操作系统,其中就有Linux、FreeBSD、Solaris、Windows 9x、Windows NT;可以载入操作系统的内核和初始化操作系统;可以把引导权直接交给操作系统来完成引导;可以直接从FAT、minix、FFS、ext2或ext3分区读取Linux内核。Grub 有一个特殊的交互式控制台方式,可以手工装入内核并选择引导分区。

初识Grub和LILO

1.Grub与LILO的优缺点

由于Grub出现要比LILO晚,所以它可以实现LILO的绝大部分功能,可以代替LILO来完成对Linux的引导,特别适用于Linux与其它操作系统共存情况。

◆ 8.4GB问题

以前大多数Linux所带较旧版本的LILO都有这样的一个问题:启动/boot分区不能分在超过1023柱面的地方,一般是在8.4GB左右的地方,否则LILO不能安装,或者安装后不能正确引导系统。Grub就不会出现这种情况,只要安装时大硬盘是在LBA模式下,它就可以引导根分区在8GB以外的操作系统。目前,在LILO较新的版本中这个问题已经做了很好处理。

◆ 漂亮的Logo

Grub引导开机显示一个漂亮的开机画面,它可以是640×480、800×600、1024×768等各种模式画面, 而且可以支持自动选择最佳图像模式。Linux爱好者可以通过改变这幅图片来制作个性化开机画面。

LILO源于文字界面,因此它在最新的版本中对开机画面的支持也是很有限的。

◆ 执行模式

Grub不但可以通过配置文件进行引导,还可以在选择引导前动态改变引导参数,动态加载各种设备。例如,在Linux下编译了一个新的核心,但不能确定它能不能工作,就可以在引导时动态改变Grub的参数,此时即使Grub菜单配置不正确,但仍可以引导系统。Grub的命令行有非常强大的功能,而且支持如bash一样的历史功能,可以用上下键来寻找以前的命令。LILO就不支持这种模式。

在LILO下,既可以手工输入操作系统的名字来引导不同的操作系统,也可使用一个菜单来选择不同的系统进行引导。Grub也兼容以上的操作。

◆ 分区对Grub与LILO的影响

LILO是通过读取硬盘上的绝对扇区来装入操作系统,因此每次分区改变都必须重新配置LILO,如果调整了分区的大小及分区的分配,那么LILO在重新配置之前就不能引导这个分区的操作系统了。而Grub是通过文件系统直接把核心读取到内存,因此只要操作系统核心的路径没有改变,Grub就可以引导系统。

Grub和LILO支持多种外部设备,支持多种文件系统,动态装载操作系统内核,甚至可以通过网络装载操作系统核心。Grub还支持多种可执行文件格式,支持自动解压,可以引导不支持多重引导的操作系统等。

Grub和LILO的参数比较

1.安装

敲入“makebootable”命令,就可以安装Grub。而“lilo -v”则是重新安装LILO。LILO引导扇区包括一个分区表的空间,所以LILO既可以安装在MBR中,也可以安装在某个分区的引导扇区。Grub和LILO同时都可以安装在软盘之中。制作Grub的启动盘和制作LILO的启动盘相差不大。

要制作引导盘,需执行一些简单的步骤。首先确定Grub或LILO已经安装,并且在新的软盘上创建 ext2文件系统。然后进行安装,将一张空盘插入软驱,输入:

#mke2fs /dev/fd0

创建了ext2文件系统后,需要安装该文件系统。

(1)安装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启动盘就完成了。

(2)安装LILO

#dd if=/dev/hda of=/dev/fd0 bs=512 count=1(因为LILO已经安装在MBR中)

执行上述命令后LILO启动盘就完成了。

Grub启动时,会在/boot/grub/中寻找一个名字为menu.lst的配置文件,如果找不到此文件则不进入菜单模式直接进入命令行模式。menu.lst 是一个文本文件,可以用任何一个文本编辑器打开它。每一行代表一个配置命令,如果一行的第一个字符为“#”,则表明这一行为注释,可以简单地用增加或减少注释行来改变配置。LILO使用一个文本文件/etc/lilo.conf作为其配置文件。LILO读取lilo.conf,按照其中的参数将特定的LILO写入系统引导区。如果修改了/etc/lilo.conf,就必须重新运行LILO命令,以保证LILO正常运行。

Grub和LILO有很多的相似的参数,见表1所示。

表1 Grub和LILO参数比较

相似功能 Grub的具体参数 LILO的具体参数
在second秒之后引导默认的操作系统 timeout second timeout=tsecs
默认启动选项 default num default=name
指定操作系统的名字和描述 title OS mode label
指出linux内核的路径 Kernel image
指出开机画面的文件所存放的路径和文件名 Splash pathname/filename message=message-file

2.配置

(1)Grub和LILO共同的配置(括号内为LILO的参数)

指定引导默认的操作系统的等待时间:

timeout second(timeout=tsecs)

上面代码表明设定second秒之后引导默认的操作系统。如果是timeout 5,就是5秒没有其它指令就引导系统;如果设成-1,则Grub会一直等待直到用户选择一个选项为止。

LILO中,timeout=50同样设置等待键盘输入的时长,单位是0.1秒。超过这段时间没有输入则为超时,系统将自动引导缺省的操作系统。如果不设置本参数,缺省的超时时间长度为无穷大。

指定引导的默认操作系统:

default num(default=name)

Grub中默认启动第num+1行的操作系统,default=1则启动第2个系统。LILO中是通过default=name指定缺省引导的操作系统,如default=LINUX表示将label为Linux的系统作为缺省引导的操作系统。如不指定该参数,排在lilo.conf中的第一个操作系统将作为缺省操作系统。

指定引导的操作系统的内核:

Kernel(image)

给Grub指定内核在哪儿,还要指出哪个文件是内核文件。例如kernel /boot/vmlinuz-2.2.16 root=/dev/hda7 ro说明/boot/vmlinuz-2.2.16 就是要载入的内核,后面的都是传递给内核的参数。root=/dev/hda7就是Linux根分区的所在分区,ro以只读的方式打开。 LILO中是以image=filename来指定含有一个Linux内核的启动选项的文件或设备。

指定引导操作系统时的信息文件:

Splash pathname/filename(message=message-file)

上面代码指出Grub开机画面文件所存放的路径和文件名。LILO中,message=message-file命令用于指定一个包含注释信息的文件,该文件将在系统“LILO”之前显示。如果在LILO启动时想获取较多的信息,可以编辑这个文件,再使用该命令就可以了。文件中如果包含有ASCⅡ码为0xFF的字符(Ctrl+L)则表示清屏。注意,文件的大小不能超过65535个字节。每次文件改变之后,都必须重新运行LILO命令重建map文件,以保证其正常显示。

指定引导操作系统的名称:

title OS mode(label)

阅读(211) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~