快捷搜索:   服务器  安全  linux 安全  MYSQL  dedecms

LIlo的介绍大家一起来学


  作者:answer
  
  LINUX和LILO
  Linux的引导可以采用多种方式,其加载器LILO(Linux Loader)
  是一个灵活的引导加载程序,与其他常用的引导加载程序相比,LILO
  引导方式显得更具有艺术性,对其深入的理解,将有助于我们方便地
  处理多重系统、网络引导、大硬盘及大内存等诸多棘手的问题。
    一、LILO的引导机制
  
    众所周知,计算机的最初启动是由BIOS控制的,在对一些硬件
  (如:内存、键盘等)初始化之后,它会试图加载硬盘的主引导记录
  (MBR)或软盘的引导扇区。
  
    MBR可通过两种方式运行,其一是定位到活动分区并加载相应的
  引导扇区,然后由引导扇区完成该分区内操作系统的基本组件的加载
  ;其二是直接从一指定分区中加载信息,并通过它装入任一分区的操
  作系统,诸如LILO、OS/2 boot loader及Partition Magic等引导加载
  程序都可以配置成这种方式。
  
    软盘的引导扇区相当于硬盘活动分区的引导扇区,它通常用于装
  入软盘上的操作系统。
  
    由此可见,只要把LILO安装在MBR、活动分区或者引导软盘上,
  就能接管计算机的控制权,然后由LILO完成后继的引导过程。LILO中
  建有一个引导表地址编码,借此它的引导程序就能定位到Linux的内
  核文件,这种地址编码既可以按照柱面/磁头/扇区(CHS)模式,又可
  以采用LBA的线性块号模式,因此,即使对某些SCSI控制程序LILO也
  能运转良好。
  
    当LILO定位到配置文件后,经过预引导过程,就显示提示符:
    LILO boot:
  
    此时,系统允许选择引导不同的操作系统或者不同的内核配置,
  按Tab键显示可选项列表,然后输入可选项或者直接回车选择缺省配
  置,如果选择了引导Linux,还可以直接传递参数到系统内核。
  
    和其他系统的引导加载程序相比,LILO具有更大的灵活性,其引
  导方式也更丰富多彩。
  
    ●当LILO被安装在硬盘的MBR、活动分区或引导软盘上时,作为
  原引导程序的替身,它能引导任一硬盘任一分区上的Linux和其他操
  作系统;
  
    ●除了引导扇区,它没有任何隐含文件,也不需要使用特定的分
  区,它的配置文件可以在任何分区、甚至是存放在与Linux毫不相干
  的DOS分区的某个子目录下;
  
    ●它能引导几个不同的内核配置,甚至是几个不同的内核;
  
    ●它能引导同一机程序上的多个Linux版本;
  
    ●它能从网络上引导Linux。
  
    LILO的灵活性使得其配置变得相当复杂,当有多个系统共存时,
  建议先安装其他操作系统,最后再装Linux,这样,设置LILO对其他
  系统的引导会相对简单一些。
    
    二、几个重要的LILO引导参数
  
    LILO的引导参数有很多,在此只对一些比较重要的参数作一介绍
  。
    1.“boot=”
  
    此参数指明包含引导扇区的设备名(如:/dev/had),若此项忽
  略,则从当前的根分区中读取引导扇区。
  
    2.“root=”
  
    此参数告诉内核启动时以哪个设备作为根文件系统使用,其设定
  值为构造内核时根文件系统的设备名,可用的设备名有:
  
    (1)/dev/hdaN~/dev/hddN:ST-506兼容硬盘,a到d上的N个分区
    (2)/dev/sdaN~/dev/sdeN:SCSI兼容硬盘,a到e上的N个分区
    (3)/dev/xdaN~/dev/xdbN:XT兼容硬盘,a到b上的N个分区
    (4)/dev/fdN:软盘,A:(N=0)或B:(N=1)
    (5)/dev/nfs:由网络取得根文件系统的标志
  
    3.“nfsroot=”
    若需通过NFS提供根文件系统来引导无盘工作站,此参数为内核
  指定了网络根文件系统所在的机程序、目录及NFS,其格式为:nfsroot=
  (〈server_ip〉:)〈root_dir〉(,nfs_options〉)
  
    4.“nfsaddrs=”
    设定网络通讯所需的各种网络界面地址,如无此参数,则内核会
  试图用反向地址解析协定(RARP)或启动协定(BOOTP)找出这些参数,
  其格式为:
  
    nfsaddrs=〈客户端IP〉:〈服务端IP〉:〈网关IP〉:〈子网屏蔽〉:
  〈客户端名称〉:〈网络设备名 〉:〈auto〉
  
    5.“image=”
    指定Linux的内核文件。
  
    6.“delay=”
    设定引导第一个映像前的等待时间。
  
    7.“disk=”
    此参数为某一特殊的硬盘定义非标准参数。
  
    8.“append=”
    为内核传递一个可选的参数行,其典型的应用是为不能完全由系
  统自动识别的硬盘指定参数,如:append = "hd=64,32,202"
  
    9.“label=”
    此参数为每个映像指定一个名字,以供引导时选择。
  
    10.“read-only”
    设定以只读方式挂入根文件系统,用于文件系统一致性检查(fsck)
  。
  
    11.“install=”
    安装一个指定文件作为新的引导扇区,缺省为/boot/boot.b。
  
    12.“loader=”
    说明所使用的链加载程序(chain loader),缺省为/boot/chain.b,
  如果不是从首硬盘或软盘启动,那么,此选项必须说明。
  
    13.“table=”
    说明包含分区表的设备名,如果此参数忽略,引导加载程序将不
  能传递分区信息到已引导的操作系统。当此参数指向的分区表被修改
  时,必须重新运行/sbin/lilo。
  
    14.“init=”
    内核初始化时执行的程序,通常过程为init、getty、rc和sh,
  版本1.3.43以来的Linux内核能够执行/sbin/init说明的命令行,若
  在引导过程中出现问题,则可设置init=/bin/sh直接跳到Shell。
  
    15.“ramdisk_start=”
    由于内核不能放在压缩的内存文件系统映像内,为使内核映像能
  够和压缩的内存映像放在一张软盘内,加入“ramdisk_start=〈offset〉”,这样内核才?
  开始执行。
  
    16.“mem=”
    此参数的目的之一是为Linux指定使用的内存数量:如mem=96MB,
  目的之二是指定mem=nopentium告诉内核不要使用4MB分页表。
  
    17.“vga=”
    设置显示模式,如80×50、132×44等。
    
    三、LILO典型配置方法
  
    通常情况下,Linux的安装程序自身就可以完成LILO的安装配置,
  从而较好地解决多重系统的引导问题,如果系统不能自动完成这种配
  置,则可以通过手工修改配置文件/etc/lilo.conf来实现不同条件下
  的引导。
  
    1.当系统能自动完成配置时
  
    对于这种情况只有一个建议:将LILO安装到Linux分区的根上,
  而不是MBR这个多事地带。假设当前hda1中装有DOS/Windows,hda2中
  安装了Linux,则/etc/lilo.conf的内容大致如下:
  
    boot=/dev/hda2#指定引导位置compact delay=50#延时5秒root=current
  #根在当前分区image=/boot/vmlinuz#指定linux的内核文件  label=linux
  #用linux为代表名称 other=/dev/hda1#其他操作系统所在的分区table=/dev/had
  #指定包含分区表的硬盘label=dos#用dos为代表名称
  
    2.当系统无法自动完成配置时
  
    系统无法自动完成配置的情况不外乎两种:
    (1)BIOS不能直接看到Linux的根分区;
    (2)BIOS只能读写标准IDE硬盘的前504MB。
  
    这时,必须遵循一个最基本的原则:建立一个BIOS能存取的较小
  的Linux分区,其中包含内核文件、映射文件及链加载程序等必要内
  容,而根则可以是另外一个独立的分区。至于配置上的其他细节,我
  们通过以下实例来进行说明。
  
  
    例1:主硬盘为IDE接口,第二硬盘为SCSI接口,根文件在SCSI
  上。
  
    对策:在IDE硬盘上划分一个较小的Linux分区(/dev/hda2),
  其中包含基本文件,挂接到/u2下,其配置文件/etc/lilo.conf的主
  要内容为:
  
    boot=/dev/had#lilo装在主ide的mbr
  install=/u2/etc/lilo/boot.b#从boot.b安装lilo引导记录
  map=/u2/etc/lilo/map#安装程序建立此映射文件,告诉引导载入程序内核块的位置
  compact
  timeout=50
  image=/u2/vmlinuz #内核文件应事先拷贝到/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。
    对于大硬盘问题,很多人只知道低于1024个柱面的限制,而不知
  为什么标准的IDE硬盘只能认前504MB。
  
    其实,BIOS的int13调用是采用三个位元组的CHS编码,10位为柱
  面号,8位为磁头号,6位为扇区号。可能的柱面号码是0~1023,
顶(0)
踩(0)

您可能还会对下面的文章感兴趣:

最新评论