电脑技术学习

实例讲解 LILO 的配置和使用

dn001
Linux;加载程序或者说;LILO;是引导Linux;操作系统最常用的程序,本文将以实例详细叙述Lilo;的配置。
如果你第一次安装Linux;,那么可能就需要用到双重启动。
LILO(LInux;LOader)就是实现这种功能的最简单但是最
具有伸缩性的程序。

计算机启动时,BIOS;会执行位于硬盘主引导记录(MBR)
或者软盘上的一段引导程序,这段程序的作用就是定位并
加载操作系统。如果是引导Linux;的话,引导程序会把Linux;内核调入内存。LILO;就是干这种活儿的程序。

首先遇到LILO,估计应该在你安装Linux;的时候,你会被要求选择LILO;的安装处,是MBR;还是Linux;的根分区。
如果你有其他的启动管理程序例如Boot;Magic;或者;System;Commander;等,并且想使用他们,那么你应该把LILO;
安装到Linux;的根分区。如果你选择使用LILO;作为启动管理程序,就可以选择MBR。如果你想在启动时传递参数给
内核,也应该使用MBR。

使用LILO;作为启动程序后,机器启动后就会有LILO:的提示符,按下;TAB;键,可以看到可以选择的操作系统列表。
输入其中的操作系统标签名就可以启动到对应的操作系统,或者直接输入回车启动到缺省的操作系统。

我们来看一个LILO;启动的配置文件(/etc/lilo.conf)实例:

boot;=;/dev/hda;
vga;=;normal;
read-only;
prompt;
default;=;dos;
timeout;=;30;
append="hdc=ide-scsi";

image;=;/boot/vmlinuz;
label;=;linux;
root;=;/dev/hda2;
initrd;=;/boot/initrd;

第一个选项是;boot;,定义了LILO;的安装位置,
'/dev/hda';就是把LILO;安装到;MBR,所以你如果要把
LILO;作为启动管理程序,就必须这样写哦!反之,你要把他定位到具体的Linux;根分区例如;/dev/hda3。

vga;是一个显示启动菜单的配置选项,可以有:

'normal';(80x25;文本模式),;
'extended';(80x50;文本模式)
以及;'ask';(提示你选择文本模式)。

采用read-only;选项时,系统会把根分区挂接为只读方式,
推荐采用这个选项,因为;fsck;程序要求文件系统只读。
但不用担心你的根分区会不能写入了,相反,系统一旦
启动就会把根分区挂接为读写方式。

prompt;是一个必须放入的选项,否则就没有LILO;的提示符了。但是按住;shift;键可以看到提示。

default;指定缺省的引导映像,如果没有指定,那么第一个
定义的映像就成为缺省值。

timeout;是提示显示的时间,单位是;0.1;秒。

append;是一个十分有用的选项,他允许你把额外的参数传递给内核,例子中的;/dev/hdc;是一个可擦写CD驱动器,
传递的参数就是用来让内核认识这个驱动器,另外这个选项在个别不认识内存的机器上十分有用。需要注意的是,
你需要使用双引号来引入想要传递的参数,不要使用单引号。

LILO;也可以让你手工在LILO;提示符下传递这些参数。例如:

LILO:;linux;single;

就是告诉Linux;启动Linux;进入单用户模式。在引导区损坏时,可以从软盘启动,然后指定硬盘的根来修复硬盘引
导扇区。

LILO:;linux;root=/dev/hda3

image;指定需要启动的内核映像。每个映像还包括一个;label;选项定义启动时你需要输入的标签。

还可以为某一个;image;指定口令:

password='password';

添加;restricted;选项后,系统就会在你传递额外的参数时提示口令。这就防止有人采用“linux;single”;来直接
引导到提示符,而不需要验证系统口令。这在采用主机托管的服务器上十分有用,如果碰到别有用心的主机托管机房
的管理人员时,这一招还是管用的。

LILO;引导其他类型的操作系统和引导Linux;一样配置,但是更加简单:

other;=;/dev/hda3;
label;=;dos;
table;=;/dev/hda;

other;指明操作系统所在的分区,同样的和Linux;下的image;一样也需要给定一个标签(label),table;选项指向
包含分区表的设备,这个选项必不可少,因为LILO;会从这个这个分区表寻找对应的分区信息,然后把他传递给
要启动的操作系统。

对lilo.conf;的任何改变都要求重新运行;/sbin/lilo;,保证最新的改变能写入分区。
另外,如果你升级内核或者重构了;initrd;映像,也需要重新运行;/sbin/lilo。

运行/sbin/lilo;后,可以看到如下信息:

Added;linux;*;
Added;suse;
Added;windows;

表示各种映像已经写入分区,带有;*;的分区是目前的缺省引导分区。
可以用;-D;参数改变缺省引导分区:

/sbin/lilo;-D;windows;

Added;linux;
Added;suse;
Added;windows;*;

可以看到缺省分区已经成为;windows了。

标签: