Enghish Version

MandrakeUser.Org - Your Mandrake-Linux Knowledge Base!

* DocIndex - Basics

启动 GNU/Linux —— LiLo

* 配置 LiLo
* 通过 LiLo 启动其他内核/发行套件/操作系统

相关资源:

Multi-Disk HOWTO
Installation HOWTO, 8.2
LILO mini-HOWTO
Multiboot using LILO mini-HOWTO
Linux+DOS+Win95+OS2 mini-HOWTO
Linux+NT-Loader mini-HOWTO
Linux+Win95 mini-HOWTO
Booting Linux with the Win 2k Boot Loader
man lilo, man lilo.conf
LiLo User Guide in /usr/share/doc/lilo-[...]

Revision / Modified: Sept. 19, 2001
Author: Tom Berger
Translator: Wu XiaoGuang

* 配置 LiLo

LiLo 的配置文件在‘/etc/lilo.conf’。您可以通过编辑器进行修改,从 MDL 7.1 开始,也可以用‘DrakConf’(Mandrake 控制中心 - 开机 - 开机配置)来调整。
如果您想手动配置,那这篇文章能真正派上用场了。

LiLo 的配置文件包含两部分:常规部分是 LiLo 本身的一些可选项;特殊部分针对的是您要启动的各个操作系统或 GNU/Linux 内核。

最先要记住的是,您每次手动编辑‘lilo.conf’后,都要运行 lilo 命令!这不仅将使修改生效,而且还能对配置文件作一些错误检查。

我的‘lilo.conf’的常规部分,类似于:

boot=/dev/hda
map=/boot/map
install=/boot/boot.b
vga=790
default=linux
keytable=/boot/de-latin1-nodeadkeys.klt
lba32
prompt
timeout=50
message=/boot/message

boot=/dev/hda

这将决定启动扇区安放的位置。‘/dev/hda’在 Linux 中被称为‘the whole IDE disk connected as master to the first IDE channel’更多关于设备名。这一启动扇区常被称作 Master Book Record (MBR) 。当 BIOS 读入后,将首先载入 MBR 上的启动程序。
如果您希望继续使用其他启动工具,那 LiLo 就不应该安装在 MBR 上,否则将覆盖原来的启动程序,可以将 LiLo 装到‘/boot’目录所在的分区中。在系统安装过程中,只有用‘专家模式’(expert mode)时,才会遇到这个选项。

map=/boot/map, install=/boot/boot.b

这些条目告诉 LiLo ,需要的文件都在哪些地方。‘/boot/boot.b’是以下某个文件的符号链接:

  • boot-graphic.b 用作图形启动界面;
  • boot-menu.b 用作文本式的菜单启动界面;
  • boot-text.b 是一个简单的命令行启动界面。
如果要切换这些界面的话,只要用:ln -sf boot.b boot-[...].b

vga=790

使用 framebuffer(主缓冲)控制台(即启动时得到的是蓝色的欢迎屏幕和‘Aurora’界面)。这个数字决定了 framebuffer 的屏幕分辨率及颜色深度。
在‘/usr/src/linux/Documentation/fb/vesafb.txt’(第二个表格)中有这些数字的说明,但您得先将这些 转换 成十进制。

default=linux

开机界面等待一段时间后,将自动启动这个条目。如果未设该项,将启动头一个条目。

keytable=/boot/de-latin1-nodeadkeys.klt

这项决定编辑 LiLo 的启动命令行时主要用的表格。

lba32

使用‘大区块寻址’(Large Block Addressing),从而突破 BIOS 的 1024 柱面限制。 实际上,您可以将要启动的分区安装在硬盘任何位置。

prompt

这是您的启动提示符 ;-) 。如果 LiLo 只启动一个操作系统,您可以删除这个条目。

timeout=50

这个定义的是等待时间,以十分之一秒为单位,等待结束后,将启动默认系统。

message=/boot/message

说明哪个文件包含了文本菜单和文本开机界面的屏幕信息。

常规部分后面就是要启动的操作系统或 GNU/Linux 内核的条目。系统内核条目以 image 开头,其他操作系统或安装 Linux 时以 other 开头。
系统内核的条目看起来类似于:

            image=/boot/vmlinuz
            label=linux
            root=/dev/hda8
            initrd=/boot/2.2.14-15mdk_1
            append=""
            read-only
          
image=/boot/vmlinuz

内核映象(image)的位置。这个文件通常是‘/boot’中实际内核映象文件(vmlinuz-[version])的符号链接。如果有多个内核映象文件,符号链接将根据您在 LiLo 开机画面或提示符下选中的条目,进行动态地切换。

label=linux

启动菜单中该条目显示的名称。

root=/dev/hda8

‘/boot’目录所在分区的设备名。

initrd=/boot/2.2.14-15mdk_1

initrd 映象的位置。有些设备的驱动作为内核模块(比如,SCSI 硬盘)而不是内核本身来编译,要启动这样的设备,就需要这个条目。详情请看 man mkinitrd

append=""

每次开机需要被执行的可选启动参数(例如:针对 IDE CD 刻录机的‘hd[x]=ide-scsi’)。更多的参数请参阅 The Linux BootPrompt-HOWTO

read-only

决定根分区以何种方式被挂载(以后也能以可读写的方式来挂载)。这个条目可以保护根分区上的数据不被修改。

man lilo.conf 中有更多 LiLo 可选项的介绍。

通过添加多个条目,您可以分别启动这些内核映象。当然,您也可以为同一个内核映象提供多个条目,这样可以应用不同的‘append’设置。

修改过‘lilo.conf’或硬盘上的分区布局后,您务必要运行 lilo 命令,这一点很重要。

* section index * top

* 通过 LiLo 启动其他内核/发行套件/操作系统

其他内核

如果您想测试新内核,同时又要保留旧内核以妨万一,就会用到这里的功能。
编辑‘lilo.conf’,为新内核创建一个条目。如果您用的是 RPM 格式的内核,很可能已经为您建了新内核的条目。
新增条目看起来类似于旧条目,但 label 参数肯定不同,这个名称将在 LiLo 的启动菜单中出现。如果您从 SCSI 设备启动,而对 SCSI 的支持是以模块来编译的,因此您必须为新内核创建一个 initrd 映象,并指向 initrd 条目。

保存后,运行 lilo ,然后重启系统。在启动菜单中,或在启动提示符后按 TAB 键,就能看到新的条目。

其他发行套件

假设您安装其他 Linux 发行套件(甚至是 Mandrake 的不同版本)时,将 LiLo 启动扇区安装在 MBR ,而是装在‘/boot’目录所在分区的首扇区。那您在进入老系统后,可以修改‘lilo.conf’,添加这个条目:

other=/dev/[root partition of other distro]
label=otherlin

您可以将‘otherlin’换成其他您想要的名称(比如,发行套件的名称)

如果您不小心将新的 LiLo 安装到了 MBR 上,原来的就被覆盖了,您可以用启动盘进入老系统,编辑‘lilo.conf’,将 boot= 修改为老系统的根分区所在位置(比如,将 /dev/hda 改成 /dev/hda1。保存后,运行 lilo 。重启系统,进入您的新系统,编辑‘lilo.conf’,与前面提到的类似,为老系统添加一个条目。

如果您想用其他启动工具,这里的方法也有效。

其他操作系统

到目前为止,LiLo 可以启动我碰到的所有系统。

如果 DOS、Windows 3.x 或 9.x 安装在第一块 IDE 硬盘第一个分区上,该条目类似于:

            other=/dev/hda1
            label=win
            table=/dev/hda
          

这告诉 LiLo :

  • 该操作系统在哪里(在 IDE 硬盘的第一个分区)
  • 该条目启动提示符的参数是什么(win)
  • 这个系统的分区表在哪里(这里是第一块 IDE 硬盘)

似乎只有微软的操作系统需要‘table’行。
如果 BeOS 系统安装在第一块 SCSI 硬盘的第二主分区上,那就类似于:

other=/dev/sda2
label=beos

MS NT 和 OS/2 之类的系统,有自己的启动工具。如果您想用这些启动工具启动 Linux ,请看一下前面列出的 HOWTOs ,当然,您也可以用 LiLo 启动这些系统。但请注意,有时候 MS NT 对非 NT 启动扇区会有过敏反应,而 Win98 和 Win2000 则没有问题。至少 NT 3.5 和 4 无法认出 Linux 的分区类型,会“修复” MBR ……

LiLo 的另一个特技是可以启动第二块硬盘上的 DOS 或 Windows 9x ,不过要将下面几行加到‘lilo.conf’的 DOS/Windows 的条目中:

map-drive = 0x80
to = 0x81
map-drive = 0x81
to = 0x80

‘LiLo’工具的功能极其丰富,欲知详情,请参阅‘/usr/share/doc/lilo-[...]/doc’中的用户指南(User's Guide)

* section index * top

* GNU GRUB


Legal: All texts on this site are covered by the GNU Free Documentation License.
Standard disclaimers of warranty apply.