从普通的桌面用户到 Linux?nbsp;系统管理员,大部分 Linux 用户都使用过一种名为引导加载程式的工具。此类工具的不同变种会提供不同层次的支持和功能。在很多情况下,Linux 发行版默认安装的引导加载程式并不总是适合需要;每个引导加载程式的默认配置也是如此。在本文中,Laurence Bonney 讨论了两个流行的引导加载程式 —— LILO 和 GRUB —— 的长处和缺点,并建议了很多配置,以充分发掘机器的潜力。


在不考虑他们的工作或专业情况下,任何 Linux 用户都会使用的是哪个工具?引导加载程式。通过本文了解引导加载程式的工作原理,认识两个流行的引导加载程式 LILO(LInux LOader)和 GNU GRUB(GRand Unified Boot loader), 并研究两者各自的长处和缺点。
[color=blue]
什么是引导加载程式?
[/color]
最简单地讲,引导加载程式(boot loader) 会引导操作系统。当机器引导他的操作系统时,BIOS 会读取引导介质上最前面的 512 字节(即人们所知的 主引导记录(master boot record,MBR))。在单一的 MBR 中只能存储一个操作系统的引导记录,所以当需要多个操作系统时就会出现问题。所以需要更灵活的引导加载程式。

主引导记录本身要包含两类内容 —— 部分(或全部)引导加载程式连同分区表(其中包含有关于介质其余部分如何划分为分区的信息)。当 BIOS 引导时,他会寻找硬盘驱动器第一个扇区(MBR)中存储的数据;BIOS 使用存储在 MBR 中的数据激活引导加载程式。

由于 BIOS 只能访问很少量的数据,所以大部分引导加载程式分两个阶段进行引导。在引导的第一个阶段中,BIOS 引导一部分引导加载程式,即 初始程式加载程式(initial program loader,IPL)。IPL 查询分区表,从而能够加载位于不同介质上任意位置的数据。首先通过这步操作 来定位第二阶段引导加载程式(其中包含加载程式的其余部分)。

第二阶段引导加载程式是引导加载程式的主体;很多人认为这才是引导加载程式的真正部分。他包含有加载程式更需要磁盘空间的部分,比如用户界面和内核引导程式。从简单的命令行到绘声绘色的 GUI,这些用户界面的范围很广泛。

引导加载程式通常配置为两种方式的其中之一:要么是作为主引导加载程式(primary boot loader),要么是作为二级引导加载程式(secondary boot loader)。主引导程式 是安装在 MBR 上的第一阶段引导加载程式(见先前的描述)。 二级引导加载程式 是安装在可引导分区的第一阶段引导加载程式。必须在 MBR 上安装单独的引导加载程式,并配置他将 控制权转交给二级引导加载程式。

很多较新的 Linux 引导加载程式特别实用,因为他们提供了不同程度的交互,比如高级的 GUI 和加密的口令,连同通过选择操作系统进行引导的能力。这样,能够在具备多个物理磁盘的同一机器上共存多个操作系统。这种配置越来越常见,因为他帮助很多用户在安装新的 Linux 时,能够保留先前由 Windows?nbsp;机器所生成的宝贵数据资料。我个人认为这种配置很美妙;只使用一台机器就可同时拥有 Linux 和 Windows。

随着时间的推移,引导加载程式已得到了增强,为用户引入了大量的功能。各个引导程式的功能和配置存在差异,但基本的目标是相同的。

现在来看两个较为流行的引导加载程式:LILO 和 GRUB。
[color=blue]
LILO
[/color]
LInux LOader(LILO) 已成为任何 Linux 发行版的标准组成部分。作为一个 较老的/最老的 Linux 引导加载程式,他那不断壮大的 Linux 社区支持使他能够随时间的推移而发展,并始终能够充当一个可用的现代引导加载程式。有一些新的功能,比如增强的用户界面,连同对能够突破原来 1024-柱面限制的新 BIOS 功能的利用。

虽然 LILO 仍在不断地发展,但 LILO 工作原理的基本概念保持不变。

使用 LILO 作为引导加载程式

要使用 LILO 作为引导加载程式,需要做的事情取决于是要进行全新安装还是要让已安装的 Linux 改为使用 LILO。假如是要进行全新安装,那么直接跳转到 配置 LILO 那一节。假如已安装了某个 Linux 发行版,那么通常能够选择安装并配置 LILO(并能够将机器引导到新的 Linux 安装)。

要将现有的 Linux 迁移到 LILO,首先必须获得最新版本的 LILO(见 参考资料)。在做任何其他事情之前,建议您确保在手边拥有一张 Linux 引导盘 —— 假如偶而弄错了某些地方,他能够提供很大的帮助,能够恢复到初始的 Linux 配置!将 LILO 安装到系统中之后,让他接管 MBR 很简单。以 root 用户身份输入:

# /sbin/lilo -v -v

这将使用当前的 LILO 默认值,抹去 MBR 中当前任何内容。但是,请阅读 配置 LILO,以确保能够按预期引导起来。也要注意,假如想要在同一机器上运行 Windows 和 Linux,那么应该先安装 Windows OS,然后再安装 Linux OS,这样,在 Linux 安装中所选择的引导加载程式就不会被 Windows 引导加载程式所覆盖。和 Linux 引导加载程式不同,多数 Window 引导加载程式不支持引导 Linux。假如已先安装了 Linux,那么只需要自己创建一张 Linux 引导盘,这样就能够在安装完 Windows 之后,回到 Linux 安装中并重写 MBR。

配置 LILO

LILO 的配置都是通过位于 /etc/lilo.conf 的一个配置文档来完成的。清单 1 给出了一个示例配置,使用的是我的家用机器,支持 Linux 和 Windows 机器的双重引导。了解我的工作站的基本配置,就能够想像出这些配置是如何和实际机器相关联的: 主 HDD(物理磁盘 1)上安装了 Windows XP(最初机器上只有他)。在 Linux 术语中,这个 HDD 是 /dev/hda(在 GRUB 术语中是 hd0,0)。 从 HDD(物理磁盘 2)上安装了 Red Hat Linux;root 分区位于这个硬盘驱动器的第三个分区,即 /dev/hdb3(在 GRUB 术语中是 hd1,3)。

清单 1. lilo.conf 示例文档

boot=/dev/hda
map=/boot/map
install=/boot/boot.b
prompt
timeout=100

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!