深入解剖 LILO

前面的文章我们讲述了;LILO;的配置,本文我们将深入底层来讲述LILO;的技术细节,也将告诉读者怎样
去掉LILO;以及重新安装LILO 。
前文我们讲述了LILO;配置的灵活性,本文我们将讲述LILO;的内部技术细节以及启动时的主要操作及其功
能,以帮助我们调整LILO;的安装 。LILO;最大的好处就是它独立于文件系统,可以启动各种操作系统:
从Microsoft、OS/2、SCO;Unix、Unixware、PC-DOS到Linux等等 。

LILO;能处理最多16个不同的映像,LILO;写入MBR;时就作为主引导程序,写入扩展分区的引导扇区时就是
第二引导程序 。采用LILO,可以有多种组合方式启动系统 。

我们先来看看引导过程,硬盘上的数据被准确的分配到对应的“磁道”和“扇区”,硬盘上的数据分布首
先是引导扇区,然后是文件分配表(FAT),接下来就是数据区 。

硬盘分区时,被分为基本分区和扩展分区 。基本分区可以作为引导分区,可以通过任何引导程序标记为可
引导 。扩展分区可以分成好几个逻辑分区,很多的BIOS;不允许从逻辑分区启动 。

Linux;最多支持4个基本分区,如果需要额外的分区,那么就要其中的一个基本分区变成扩展分区,然后在
扩展分区里面,划分逻辑分区 。很重要的一点是有些逻辑分区的分区表不能被识别为设备的第一块 。分区
表通常存放于分区的引导扇区,而且,通常只有整个盘的分区启动扇区用作引导扇区,称为主引导记录(MBR) 。

LILO;可以用于以下情形:

1、第一硬盘的引导扇区 。
2、软盘的引导扇区 。
3、位于第一硬盘的Linux;文件系统分区上的引导扇区 。

LILO;不能用于以下情形:

1、交换分区 。
2、扩展分区中的逻辑分区的引导扇区 。

所以,如果你在第二硬盘上安装了Linux;,而不能启动的话,可以采取在第一硬盘上建立;/boot;的办法来解决 。

引导加载过程由很多程序组成,我们先来看看LILO;安装
时的各种不同程序:

MAP;安装程序:这个程序把LILO;的文件放到合适的位置
并记录这些信息(会在LILO;启动时用到),这个程序就是
/sbin/lilo;,每次配置文件有改动或者有新内核时,需要重新运行一遍 。

/boot/*.*:其他LILO;启动时需要的文件存放在;/boot;目录下,map;文件是十分重要的,map;安装程序把新内
核的位置记录到这个文件 。

引导加载程序:这个程序无需多言是最重要的部件了 。它被
BIOS;调入内存,然后调用内核或者其他操作系统的引导扇区 。

包含引导加载程序第一部分的引导扇区被调入内存,然后调用引导加载程序的第二部分,一般位于文件
/boot/boot.b,接下来就启动内核 。

如果从可引导软盘启动的话,BIOS;把软盘的第一个扇区调入内存,一般,这个扇区包含一段程序来启动对应的
操作系统 。和软盘一样,如果LILO;写入MBR;,那么,MBR;就被调入内存,执行对应的操作,给用户提示选择需
要引导的操作系统 。具体地说,MBR;的头;446;个字节由引导加载程序利用,剩余的64;字节是分区表信息 。还剩
下的两个字节就是分区激活标志“55;AA”;了 。

在软盘上备份;MBR;信息:

bash#;dd;if=/dev/hda;of=/dev/fd0;bs=512;count=1;

恢复:(万一的情况下)

bash#;dd;if=/dev/fd0;of=/dev/hda;bs=446;count=1;

删除;LILO:

c:>;fdisk;/mbr;

恢复;LILO:

重新安装;Windows;以后,就会把LILO;干掉 。无论什么原因
我们都应该知道怎样恢复LILO 。

最好手头有一张安装;CD;,这年头,干净并且确实好用的
软盘太少了 。所以不推荐你使用软盘 。当然,如果你认为

推荐阅读