当前位置:Linux教程 - Linux综合 - 深入Linux 的LILO

深入Linux 的LILO

  Linux的引导可以采用多种方式,其加载器LILO(LinuxLoader) 是一个灵活的引导加载程序,对其深入的理解,将有助于我 们方便地处理多重系统、网络引导、大硬盘及大内存等诸多 问题。 一、LILO的引导机制 ----众所周知,计算机的最初启动是由BIOS控制的,在对一些 硬件(如内存、键盘等)初始化之后,它会试图加载硬盘的主引 导记录(MBR)或软盘的引导扇区。 ----MBR可通过两种方式运行:其一是定位到活动分区并加载 相应的引导扇区,然后由引导扇区完成该分区内操作系统的 基本组件的加载;其二是直接从一指定分区中加载信息,并 通过它装入任一分区中的操作系统,诸如LILO、OS/2BootLoader 以及PartitionMagic等引导加载程序都可以配置成这种方式。软 盘的引导扇区相当于硬盘活动分区的引导扇区,它用于装入 软盘上的操作系统。 ----由此可见,只要把LILO安装在MBR、活动分区或者引导软盘 上,就能接管计算机的控制权,然后由LILO完成后继的引导过 程。LILO中建有一个引导表地址编码,借此,它的引导程序就 能定位到Linux的内核文件,这种地址编码既可以按照柱面/磁 头/扇区(CHS)模式,又可以采用LBA的线性块号模式,因此,即 使是对某些SCSI控制程序,LILO也能良好运行。 ----当LILO定位到配置文件后,经过预引导过程,就显示提示 符"LILOboot:",此时,系统允许选择引导不同的操作系统或者 不同的内核配置,按Tab键显示可选项列表,然后输入可选项 或者直接回车选择缺省配置,如果选择了引导Linux,还可以直 接传递参数到系统内核。 ----和其他系统的引导加载程序相比,LILO具有更高的灵活性 ,其引导方式也更丰富: ----①当LILO被安装在硬盘的MBR、活动分区或引导软盘上时, 作为原引导程序的替身,它能引导任一硬盘任一分区上的Lin ux和其他操作系统。 ----②除了引导扇区,它没有任何隐含文件,也不需要使用特 定的分区,它的配置文件可以在任何分区,甚至是存放在与 Linux毫不相干的DOS分区的某个子目录下。 ----③它能引导几个不同的内核配置,甚至是几个不同的内 核。 ----④它能引导同一机器上的多个Linux版本。 ----⑤它能从网络上引导Linux。 ----正是由于LILO的灵活性,使得其配置变得相当复杂,当有 多个系统共存时,建议先安装其他操作系统,最后再安装Linu x,这样,设置LILO对其他系统的引导会相对简单一些。 二、LILO引导的几个参数 ----在此只介绍本文涉及到的几个参数。 ----boot=:此参数指明包含引导扇区的设备名(如/dev/had),若 此项忽略,则从当前的根分区中读取引导扇区。 ----root=:此参数告诉内核启动时以哪个设备作为根文件系 统使用,其设定值为构造内核时根文件系统的设备名,可用 的设备名有: ----①/dev/hdaN~/dev/hddN:ST-506兼容硬盘,a到d上的N个分区。 ----②/dev/sdaN~/dev/sdeN:SCSI兼容硬盘,a到e上的N个分区。 ----③/dev/xdaN~/dev/xdbN:XT兼容硬盘,a到b上的N个分区。 ----④/dev/fdN:软盘,A:(N=0)或B:(N=1)。 ----⑤/dev/nfs:由网络取得根文件系统的标志。 ----image=:指定Linux的内核文件。 ----delay=:设定引导第一个映像前的等待时间。 ----disk=:此参数为某一特殊的硬盘定义非标准参数。 ----append=:为内核传递一个可选的参数行,其典型的应用 是为不能完全由系统自动识别的硬盘指定参数,如append="hd=6 4,32,202"。 ----label=:此参数为每个映像指定一个名字,以供引导时选 择。 ----install=:安装一个指定文件作为新的引导扇区,缺省为 /boot/boot.b。 ----table=:说明包含分区表的设备名,如果此参数忽略,引 导加载程序将不能传递分区信息到已引导的操作系统。 三、LILO典型配置方法 ----通常情况下,Linux的安装程序自身就可以完成LILO的安装 配置,从而较好地解决多重系统的引导问题,如果系统不能 自动完成这种配置,那么可以通过手工修改配置文件/etc/lilo .conf来实现不同条件下的引导。 ----1.当系统能自动完成配置时 ----对于这种情况,只有一个建议:将LILO安装到Linux分区的根
[1] [2] 下一页 

上,而不是MBR。假设当前hda1中装有DOS/Windows,hda2中安装Linux, 则/etc/lilo.conf的内容大致如下: boot=/dev/hda2#指定引导位置 compact delay=5#延时5秒 root=current#根在当前分区 image=/boot/vmlinux#指定Linux的内核文件 label=linux#用Linux为代表名称  other=/dev/hda1#其他操作系统所在的分区 table=/dev/hda#指定包含分区表的硬盘 label=dos#用dos为代表名称 ----2.当系统无法自动完成配置时 ----不外乎两种情况:其一是BIOS不能直接看到Linux的根分区; 其二是BIOS只能读写标准IDE硬盘的前504MB。这时,必须遵循一 个最基本的原则:建立一个BIOS能存取的较小的Linux分区,其 中包含内核文件、映射文件以及链加载程序等必要的内容, 而根则可以是另外一个独立的分区。至于配置上的其他细节 ,从以下实例来说明。 ----例1:主硬盘为IDE接口,第二硬盘为SCSI接口,根文件在SCSI 上。 ----对策:在IDE硬盘上划分一个较小的Linux分区(/dev/hda2),其 中包含基本文件,挂接到/u2下,其配置文件/etc/lilo.conf的主要 内容为: boot=/dev/hda#LILO装在主IDE的MBR install=/u2/etc/lilo/boot.b #从boot.b安装LILO引导记录 map=/u2/etc/lilo/map  #安装程序建立此映射文件, 告诉引导载入程序内核块的位置 compact timeout=50 image=/u2/vmlinux   #内核文件应事先拷贝到/u2下 label=linux root=/dev/sda1 #告诉内核根系统在SCSI硬盘上 read-only other=/dev/hda1 loader=/u2/etc/lilo/chain.b#指明加载程序 label=dos ----例2:一个标准的IDE大硬盘需安装Linux和DOS/Windows。 ----BIOS的int13调用是采用3个位元组的CHS编码,10位为柱面 号,8位为磁头号,6位为扇区号。可能的柱面号码是0~1023,可 能的磁头号码是0~255,而磁道上可能的扇区号码是1~63,以 这24位最多可以定址7.875GB。但不幸的是,标准的IDE界面容许2 56个扇区/磁道、65536个柱面以及16个磁头。它自己本身可以 存取128GB,但是除去BIOS方面63个扇区与1024个柱面后只剩504MB 可以定址。 ----对策:在硬盘的前500MB中划分350MB(/dev/hda1)给DOS,150MB(/dev/ hda2)给Linux,在相应的配置文件中应说明硬盘的参数: boot=/dev/hda ... disk=/dev/hda bios=0x80 sectors=63 heads=16 cylinders=2100 image=/vmlinux append="hd=2100,16,23" root=/dev/hda2 label=linux 四、LILO的卸装 ----当LILO覆盖了引导扇区时,它会保留一个引导扇区的备份 在/boot/boot.xxyy中,其中xxyy是十六进制的设备主/次号码(maj or/minornumbers),利用命令"ls-l/dev/device"就可获得硬盘或分区 的主/次号码。若要卸装LILO,只需恢复初始的引导扇区。例 如:LILO安装在/dev/had,对应的备份文件为/boot/boot.0300,使用 下面的命令即可: ----ddif=/boot/boot.0300of=/dev/_hadbs=446count=1

(出处:http://www.sheup.com)


上一页 [1] [2] 

or/minornumbers),利用命令"ls-l/dev/device"就可获得硬盘或分区 的主/次号码。若要卸装LILO,只需恢复初始的引导扇区。例 如:LILO安装在/dev/had,对应的备份文件为/boot/boot.0300,使用 下面的命令即可: ----ddif=/boot/boot.0300of=/dev/_hadbs=446count=1

(出处:http://www.sheup.com)


上一页 [1] [2] [3]