当前位置:Linux教程 - Linux - 实例讲解 LILO 的配置和使用

实例讲解 LILO 的配置和使用


本文出自:http://www.freelamp.com 作者: 徐永久([email protected]) (2001-08-27 09:00:00)

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了。