精华内容
下载资源
问答
  • 内核_Lilo详解杂烩

    2009-09-05 10:53:00
    Lilo 功能非常强大,它不仅仅可以作为Linux操作系统的引导器,还可引导多个操作系统(eg: Win2000, Win9x, dos, Minix…),以及启动多个Linux内核映像。 在后面的内容中,我们将通过运行在自己计算机上的真实例子,...

    Lilo 功能非常强大,它不仅仅可以作为Linux操作系统的引导器,还可引导多个操作系统(eg: Win2000, Win9x, dos, Minix…),以及启动多个Linux内核映像
        在后面的内容中,我们将通过运行在自己计算机上的真实例子,讨论lilo最主要的用法。在开始学习lilo之前,我们还需要一些预备知识--什么是硬盘分区,Linux对硬盘分区的命名方法。
    什么是硬盘分区?
        硬盘分区是指对硬盘物理介质的逻辑划分。将硬盘分成多个分区,不仅仅利于对文件的管理,而且不同的分区可以建立不同的文件系统。这样才能在不同的分区上安装不同的操作系统。对于一个硬盘来说,最多只能创建三个主分区,一个扩展分区在扩展分区上又可以划分若干逻辑分区。对于一个常规的操作系统来说,一般只能安装在主分区中,并且安装在主分区中的操作系统远比安装在逻辑分区中的方便管理且安全得多。(注:Linux就可安装在逻辑分区中)
        硬盘的物理第一扇(0柱面,0面,1扇区)是硬盘主引导记录扇MBR,计算机启动时,首先就读取该扇,读出硬盘分区表,从中选择三个主分区中唯一一个具有活动标记的分区,引导该分区上的操作系统。也就是说,无论有几个主分区(≤3),其中必须有一个分区是活动的。对硬盘进行分区,可以使用任何硬盘分区软件,如:Dos 下的fdisk、 PQMagic, Linux 下的cfdisk等等。Linux的引导记录可以安装在MBR中,或者Linux所在主分区中。如果Linux安装在逻辑分区中则Linux的引导记录必须安装在MBR中。
      
    Linux对硬盘分区命名方法?
        Linux对硬盘设备的命名方式与Windows系列大不一样。每一个硬盘拥有自己的设备名。IDE硬盘为hd? , SCSI硬盘为sd? 。?表示a到z的小写字母,不同的字母代表不同的硬盘设备,这个字母为主设备号。而硬盘上的分区用hd??或sd??中的第二个?表示,它由数字组成,1-4表示主分区,从5开始表示逻辑分区。
        既是说,hda1表示第一个IDE硬盘的第一个主分区,sdb7表示第二个SCSI硬盘的第三个逻辑分区。
    而直接使用硬盘设备的主设备名,则表示该硬盘的MBR。如hda表示第一个IDE硬盘的MBR
      
      lilo的使用主要在于lilo.conf的配置。Lilo.conf是lilo的配置文件,它位于/etc之下。在图1中给出了我的lilo.conf文件,后面的学习将主要围绕图1进行。
      配置Lilo.conf
      
      boot=/dev/hda3
      prompt
      timeout=30
      default=w
      message=/etc/message-file
      
      image=/boot/vmlinuz-2.2.12-20
      label=l
      read-only
      root=/dev/hda3
      
      other=/dev/hda1
      label=w
      other=/dev/hda4
      label=m
      other=/dev/fd0
      label=f
      在对图1进行细致分析之前,先来看一看我的硬盘分区情况--图2
      
      cfdisk 2.9 Disk Drive: /dev/hda
      Size: 4310433792 bytes Heads: 255 Sectors per Track: 63 Cylinders: 524
      Name Flags PartType FS Type Size (MB)
      ------------------------------------------------------------------------------
      hda1 Primary Win95 FAT32 1135.09
      hda4 Primary Minix / old Linux 32.91
      hda5 Logical FAT16 106.93
      hda6 Logical Linux swap 32.91
      hda7 Logical NTFS 1348.95
      hda8 Logical NTFS 575.77
      hda3 Boot Primary Linux ext2 1069.29
      Unusable 8.23
      [Bootable][ Delete ][Help] [Maximize][ Print][Quit][Type][ Units][ Write][Toggle bootable flag of the current partition]
        读者可知该硬盘一共分为7个分区,3个主分区,4个逻辑分区,有8MB空间未使用。Win98操作系统位于主分区hda1,Linux 位于hda3, Minix 位于hda4,逻辑分区hda5-hda8位于扩展分区hda2中。即需要用lilo引导三个操作系统Linix, Minix, Win98。
        下面我们开始逐行分析lilo.conf,见图1。第一行,boot=/dev/hda3,告诉lilo将引导记录写到哪里。该行表明将Linux引导程序写到Linux所在分区/dev/hda3处。如果boot=/dev/hda,则意味着将Linux引导程序写到MBR处。出于兼容性与安全的考虑,我建议大家将其写入Linux所在分区处,并将该分区标记为活动的。毕竟多次向MBR写入,容易造成MBR损坏,那麻烦可就大了。
        在不少的Linux安装过程中,常常直接将Linux引导程序写入MBR,如果您希望改为我所推荐的方式的话,首先按以上方法修改lilo.conf,运行lilo,再将Linux所在分区标为活动的。重启后,进入dos,运行fdisk /mbr,将MBR中的Linux引导程序清除。这样,就可以从Linux活动分区启动多个操作系统了。
        接下来是prompt命令,其作用是使lilo在引导时显示LILO:提示符,在该提示符下,用户需要输入准备启动的引导映像的名字,按TAB键列出所有供选择的引导映像的名字。
      Timeout=30通知lilo选择缺省引导映像之前等待30毫秒(3秒)。
      default=w 定义将要引导的缺省操作系统。如果没有该语句,则缺省引导第一个数据块。
      image=/boot/vmlinuz-2.2.12-20定义引导Linux的内核映像文件,即位于/boot下的vmlinuz-2.2.12-20。
      label=l定义所在数据块的名称,在启动选择多操作系统时,用户应输入的内容。
      read-only定义根文件系统挂装为只读属性。
      root=/dev/hda3告诉lilo Linux的内核映像文件在哪个硬盘分区中。
      以上为Linux数据块。
      other=/dev/hda1定义引导Win98操作系统所在主分区。
      label=w同label=l。
      以上为Win98数据块。
      其他数据块与之类似。
      
      启动多操作系统
      细心的读者会发现我遗漏了一行message=/etc/message-file,这是我故意将其放在后面讲的。这里有一个小小的技巧问题。
      一般的,我们写lable=linux, 在启动时输入linux即可启动Linux操作系统,清楚明了但却有点麻烦。写成lable=l,输入倒是简单,却又让人摸不着头脑,不知l是什么。Message命令是在lilo启动时显示一段提示信息。这样就解决了显示与输入的矛盾。我的/etc/message-file的是这样的:l: Red Hat Linux, w: Windows98, m: Minix 2.0, f: Floppy。这样在启动时,屏幕会得到如下显示:
      LILO:
      l: Red Hat Linux, w: Windows98, m: Minix 2.0, f: Floppy
      boot:
      
      输入l或w或m即可启动Linux或 Win98或 Minix操作系统,提示清晰,输入简单。
      在看见lilo.conf文件中最末的数据块中的/dev/fd0,以及message-file中的 f: Floppy时,不知道聪明的你悟到了什么。是的,lilo还支持用启动软盘启机。除了修改lilo.conf文件以外,你在运行lilo前,必须在软驱中插入一张系统盘(启动盘或可引导盘)。这样,重启后就可以通过lilo用软盘启机了。再也不用在BIOS中改来改去了,是不是很方便呢?
      遗憾的是,仅仅只能对软盘这样做,光盘则不行。即还不能用lilo通过光盘启机。
      
      启动新的Linux内核
      作为一个Hacker, 经常要修改内核模块或尝试最新的内核。比较安全的做法是将新内核数据项加入lilo.conf,并保持原有内核不变,这样一旦新内核不能启动,你可通过原内核启动Linux。对lilo.conf的修改也很简单,依葫芦画瓢即可。编译好的新内核vmlinuz-2.2.14-20保存在/boot目录下,依着原内核vmlinuz-2.2.12-20的用法在lilo.conf中添加一个新数据块就可以了。
      如下图所示新内核与原内核的数据块:
      
      image=/boot/vmlinuz-2.2.12-20
      label=l
      read-only 原内核
      root=/dev/hda3
      image=/boot/vmlinuz-2.2.14-20
      label=newl
      read-only 新内核
      root=/dev/hda3
      在lilo启机时,选择newl就可以启动新的内核了。如果新内核不正常,选择l则仍可以使用原内核。
      
      Lilo的使用
      在编辑好lilo.conf后,所要做的就是用lilo将Linux引导程序写入硬盘了。其用法非常简单,运行lilo即可
      重启计算机,终于大功告成。通过lilo,你可以选择硬盘上各个操作系统以及多个不同Linux的内核,当然还可启动软盘上的系统。
      对Linux的lilo的讨论,我想,到此就告一段落了。Lilo的配置选项还很多,但其最重要的内容都浓缩在本文中了。有兴趣的朋友可以自己试着对lilo.conf进行修改,多实践就会有收获。

    --------------------------------------------------------------------
     一、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/hda
    #指定包含分区表的硬盘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/hda#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~255,而磁道上可能的扇区号码是1~63,以这24位最多可以定址8455716864个位元组(7.875GB)。
      但不幸的是,标准的IDE介面容许256个扇区/磁道、65536个柱面及16个磁头。它自己本身可以存取237= 137438953472(128 GB),但是加上BIOS方面63个扇区与1024个柱面的限制后只剩528482304(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=/vmlunuz
      append="hd=2100,16,23"
      root=/dev/hda2
      label=linux
      四、LILO的卸载
      当LILO覆盖了引导扇区时,它会保留一个引导扇区的备份在/boot/boot.xxyy中,其中xxyy是16进制的设备主/次号码
    (major/minor numbers),利用命令“ls -l /dev/device”就可获得硬盘或分区的主/次号码。如果这些备份文件已经存在,那么,当你重新安装LILO或重构内核时,它将不再生成此文件,这就保证了此备份文件是最原始的引导扇区。
      若要卸载LILO,你只需恢复初始的引导扇区就可以了。例如:LILO安装在/dev/had,对应的备份文件为/boot/boot.0300,简单地使用下面的命令即可:
      dd if=/boot/boot.0300 of=/dev/had bs=446 count=1
      当然,若想完全卸掉Linux,必须用Linux的fdisk对Linux分区进行破坏,因为DOS的fdisk无法移去非DOS分区。
      关于LILO值得探讨的问题还有很多,但只要懂得了其内部机制,对更复杂的实际情况也能较圆满地解决。

    -------------------------------------------------------------------

    当LILO启动完成时,会在屏幕上显示字符串”LILO”,其实这其中的每个字母背后都对应着特定的操作。如果LILO在某个部分出了错,我们就可以根据屏幕上当前出现的字母推断出故障原因。
    LILO启动分为两个步骤,由第一个步骤将第二个步骤的代码调入内存。
    如果启动LILO时,磁盘出现瞬间的错误,则在“L”字母后会输出一串二进制数字。此时如不中止LILO运行,屏幕上会出现无穷的错误代码输出,这种情况可以重新启动LILO试试。
    屏幕上什么都没出现:LILO并未被装载。原因可能是LILO还未被安装或者LILO所在的 分区未被设为active状态。
    L : LILO启动了到第一步,但在将第二部分调入内存时出现了错误。两位错误代码指出了错误类型面,具体内容见后面所附的磁盘错误代码。
    LI:LILO引导程序的第一部分能够将LILO引导装入程序的第二部分装入,但却不能执行。这可能是因为硬盘参数设置不当或者是因为在移动/boot/boot.b时没有运行map 安装程序。
    LIL:引导程序的第二部分已经工作,但它无法从map文件中装载描述符表,原因可能是介质故障或硬盘参数设置不当。
    LIL?:第二部分引导程序装入地址不正确,原因:硬盘参数设置不当或移到boot.b文件后未运行map installer。
    LIL-:描述符表损坏。原因同上。
    LILO:LILO的各个部分均已成功装入。
    1010101010 : 分区情况已经改变却没有重新安装LILO。
    附:磁盘错误代码。
    0x00 "内部错误"。 LILO由扇区读子程序产生,可能是因为被破坏的文件,重建map文件试试看.另一个原因也许是,当使用linear参数时去访问超出1024的柱面。
    0x01 "非法命令"。一般不会发生这种问题,如果确实出现了,那就表示LILO访问BIOS不支持的硬盘。在机器间换硬盘的时候最有可能出现这种情况,所以一定要先在BIOS里把硬盘参数设好。
    0x02 "没找到地址标记"。通常由硬盘介质故障问题引起,多试几遍看看。
    0x03 "写保护错"。 仅在写操作时出现。
    0x04 "扇区未找到"。 最典型的原因是硬盘参数设置不正确。
    0x06 "激活顺序改变"。 这应该是瞬间的错误,再试一次,问题有可能就解决了。
    0x07 "无效的初始化"。 BIOS没有适当地初始化硬盘,如果在BIOS里设置的硬盘参数为auto时可能会产生这种故障,建议在BIOS里将硬盘参数设置为固定的,或热启动一次试试。
    0x08 "DMA超出限度"。可以重新启动试试。
    0x09 "DMA试图越过64k边界"。 建议忽略COMPACT参数。
    0x0C "无效的介质"。小概率事件,重新启动看看。
    0x10 "CRC错误"。 检测到硬盘介质故障,建议多启动几次或运行map安装程序把map文件从坏块写到正常的介质上。
    0x11 "ECC校正成功"。 读错误发生然后被校正了,但是LILO并不知道这个情况,终止了启动过程。
    0x20 "控制器错误"。可能由IDE控制器故障引起。
    ox40 "定位失败"。 这可能是介质问题,重新启动试试。
    0x80 "磁盘超时"。 磁盘或驱动器没有准备好。
    0xBB "BIOS错误"。 由BIOS参数引起,发生概率极小,如果反复发生,则考虑移去COMPACT参数或加上/取消LINEAR参数。

    展开全文
  • LILO详解

    千次阅读 2013-10-14 09:15:12
    与其他常用的引导加载程序相比,LILO引导 方式显得更具有艺术性,对其深入的理解,将有助于我们方便地处理多操作系统、网络引导、大硬盘及大内存等诸多棘手的问题。  通常我们谈到LILO,会涉及到两个方

    LILO详解

    此文系转载
    作者:佚名
    原始网址:不详

    LILO(Linux Loader)是Linux自带的一个优秀的引导管理器,使用它可以很方便地引导一台机器上的多个操作系统。与其他常用的引导加载程序相比,LILO引导 方式显得更具有艺术性,对其深入的理解,将有助于我们方便地处理多操作系统、网络引导、大硬盘及大内存等诸多棘手的问题。

      通常我们谈到LILO,会涉及到两个方面——LILO引导程序和LILO安装命令/sbin/lilo。为了不至于混淆这两个概念,本文将用LILO表示LILO引导程序,而lilo表示/sbin/lilo。

      一般地,LILO使用一个文本文件/etc/lilo.conf作为其配置文件。lilo读取lilo.conf,按照其中的参数将特定的LILO写 入系统引导区。任何时候,修改了/etc/lilo.conf,都必须重新运行lilo命令,以保证LILO正常运行。lilo.conf使用的配置参数 很多,配置起来也相当复杂。下面以RedHat Linux为例作一些初步探讨,RedHat的lilo程序包版本为0.20,别的Linux发行版本可能会有所出入,但不会太大。

      lilo.conf文件中的配置参数分为两部分,一部分是全局参数,另一部分是引导映像参数。与Linux系统其他的配置文件一样,“#”号后的一行文字表示注释。

      一、LILO的全局参数

      全局参数是全程有效的,它可以出现在文件lilo.conf中的任何地方。以下是具体的参数项:

      1.backup=backup-file

      在装入LILO之前将原先的引导区备份到backup-file,而不是RedHat 缺省的/boot/boot.NNNN。也可以备份到一个设备上,如: /dev/null。注意:如果原先已有一个同名文件,该参数将被忽略。我们可通过这个备份恢复原先的引导扇区:

      dd if=/boot/boot.NNNN of=/dev/hda bs=446 count=1

      恢复原先的MBR。(注:虽然boot.NNNN有512字节,但只能恢复前446字节到MBR。)

      2.boot=boot-device

      指定一个用于安装LILO的设备。通常LILO可安装在如下几个地方:

      MBR:第一个硬盘的主引导区, 对应于/dev/hda、/dev/sda等。

      Root:Linux根分区的超级块(Super block), 对应于/dev/hda1、/dev/hda2、/dev/hda5、/dev/sda1、/dev/sda5等。

      Floppy:LILO安装在软盘上,对应于/dev/fd0。

      不指定时,lilo缺省安装在根分区超级块上。

      3.compact

      该参数用于优化LILO,产生一个更小的“map”文件。如果在软盘上安装LILO,强烈推荐使用此参数。

      4.default=name

      指定缺省引导的操作系统。如default=dos 表示将label为DOS的系统作为缺省引导的操作系统。如不指定该参数,排在lilo.conf中的第一个操作系统将作为缺省操作系统。

      5.delay=tsecs

      在没有指定“prompt” 参数时,LILO将立即引导缺省的操作系统,“delay”参数在这之间插入一段延时,单位是1/10秒。

      6.disk=device-name

      为某些非标准硬盘定义参数。其内部还包括有几个可选的子参数。

      bios=〈bios_device_code〉:  设备号。十六进制数0×80表示第一硬盘;0×81表示第二硬盘,依此类推。

      sectors=〈sectors〉:硬盘扇区数。

      heads=〈heads〉:硬盘磁头数。

      cylinders=〈cylinders〉:硬盘柱面数。受系统BIOS限制,柱面数必须在1024以内。

      partition=〈partition_device〉:用于物理定位特殊硬盘上的分区,有一个子参数start。

      start=〈partition_offset〉:每一分区的起始扇区。

      例如:

      disk = /dev/sda

      bios=0×80

      #指定SCSI硬盘为第一硬盘

       sectors = 32

       heads = 64

       cylinders=632

      #硬盘参数为632/64/32

      partition=/dev/sda1

      start=2048

      #第一分区起始扇区为2048

      partition = /dev/sda2

      start=204800

      #第二分区起始扇区为204800

       partition = /dev/sda3

        start = 500000

       partition = /dev/sda4

        start = 900000

      当机器上有两块硬盘,一块为SCSI硬盘,另一块为IDE硬盘时,LILO很有可能无法自动识别它们的主、从顺序,这时可进行如下设置:

    disk = /dev/sda

       bios = 0×80

      disk = /dev/hda

       bios = 0×81

      #SCSI硬盘为主硬盘,IDE硬盘为从硬盘

      该参数是为Linux无法识别的硬盘准备的,一般Linux可以正确识别和使用大多数硬盘,除非最坏的情况,否则不用设置它。

      7.force-backup=backup-file

      类似“backup”参数,但是将覆盖原有的同名文件。

      8.ignore-table

      通知lilo忽略无效的硬盘分区表。

      9.install=boot-sector

      LILO实际上包含有几个部分,而这几部分都存放在/boot/boot.b文件中。如果忽略“install”参数,则lilo认为install=/boot/boot.b。

      10.linear

      产生用于替换硬盘sector/head/cylinder地址(硬盘几何参数)的linear扇区地址。linear地址在运行时产生并且不依赖于 硬盘几何参数。某些SCSI硬盘和一些以LBA方式使用的IDE硬盘可能会需要使用这个参数。注意,在将LILO安装到软盘上时不能使用“linear” 参数。

      11.lock

      出现LILO提示后立即按最近一次的引导映像启动计算机。也就是说,当我们在lilo.conf中加入了该参数,然后运行lilo安装LILO,再重新启动计算机,这时LILO会提示我们选择引导哪一种操作系统,这一选择将被LILO记录下来,即“锁定”,下次启动计算机时,LILO将忽略“delay”、“prompt”等参数及键盘输入而直接跳转到其“锁定”的操作系统。

      12.map=map-file

      指定map文件。 没有本项时缺省使用/boot/map,每次执行lilo命令都会产生一个新的map文件。

      13.message=message-file

      该命令用于指定一个包含注释信息的文件,该文件将在系统打印出字符串“LILO”之前显示。如果在LILO启动时想获取较多的信息,可以编辑一个文 件,再使用该命令就可以了。文件中如果包含有ASCII码为0xFF的字符(Ctrl+L)则表示清屏。注意,文件的大小不能超过65535个字节。每次 文件改变之后,都必须重新运行lilo命令重建map文件,以保证其正常显示。

      14.optional

      当用于启动的引导映像不存在时,该参数使lilo忽略它。这对用于测试一个不长期存在的Linux核心是有用的。

      15.password=password

      为LILO设置口令保护,每次重新启动计算机提示用户输入口令。设置了口令后,建议将lilo.conf的文件属性改为600,以免让非root用户看到口令。

      16.prompt

      给出“boot:”提示,强制LILO等待用户的键盘输入,按下回车键则立即引导默认的操作系统,而按下Tab键则打印可供选择的操作系统。当 “prompt”被设置而“timeout”没有被设置时,系统会一直处于等待状态而不引导任何操作系统。不设置该参数时,LILO不给出“boot:” 提示而直接引导默认操作系统,除非用户按下了Shift、Ctrl、Alt三键中的任何一个。大多数情况下,如果你的硬盘上有多个操作系统,建议使用参 数,它留给用户一个选择的余地。

      17.restricted

      与“password”联用,使“password”仅作用于在LILO提示后有命令行输入的时候。

      18.serial=parameters

      使用串行口控制。这将初始化指定的串口,并将使引导管理器能接受来自串口的输入。从串口发送一个中断信号相当于从控制台键盘上按下Shift键,它同 样会被LILO捕捉到。如果不能保证来自串口的访问和控制台一样安全,比方说有一个modem连在串口上,建议为每个引导映像加上口令保护 (password)。参数串有如下语法:

      〈port〉[,〈bps〉[〈parity〉[〈bits〉>

      〈port〉:数字表示的串口号,0表示COM1,其余类推。所有四个串口都可被使用。

      〈bps〉:串口速率,支持110、 150、300、600、1200、2400、4800和 9600 bps,缺省值为2400bps。

      〈parity〉:设置串口校验。一般情况下,LILO忽略奇偶校验。n表示无校验,e 表示偶校验,o 表示奇校验。

      〈bits〉:字符位数,只能取7或8,缺省值是8。当有奇偶校验时只能取7。

      如果设置了“serial”,即使没有设置“delay”,系统也会将“delay”项的值自动增加20。

      19.timeout=tsecs



      设置等待键盘输入的时长,单位是0.1秒。超过这段时间没有输入则为超时,系统将自动引导缺省的操作系统。如果不设置本参数,缺省的超时时间长度为无穷大。

      二、引导映像参数

      引导映像参数作用于每一个引导映像区。如果某一引导映像参数(例如:password)与全局参数的定义相抵触,则以该引导映像参数的定义为准,但仅限于该引导映像区。以下是具体参数项:

      image=pathname

      设置包含Linux核心引导映像的文件或设备。

      other=pathname

      设置包含非Linux操作系统,如DOS、SCO UNIX、Windows 95等系统引导映像的文件或设备。

      range=start-end

      如果“image”参数被设置为一个设备,则Linux核心引导映像的存放范围必须被设置。

      image = /dev/fd0

      range = 1-512  

      # Linux核心引导映像存放在软盘上的第一至512扇区

      label=name

      通过此参数来标识当前操作系统,即操作系统名。用户可通过在LILO提示后输入“标识”来决定引导哪一个操作系统。

      alias=name

      给当前操作系统起一别名。

      lock

      类似同名全局参数。

      optional

      类似同名全局参数。

      password=password

      类似同名全局参数。

      restricted

      类似同名全局参数。

      以下两个参数项用于非Linux操作系统:

      loader=chain-loader

      如果要引导第二块硬盘上的非Linux操作系统或将LILO安装到软盘,这个参数是必需的。不指定时,缺省值是/boot/chain.b。如启动第 二块硬盘上的MS-DOS或Windows 95,可定义loader=/boot/any_d.b;对于OS/2,则为loader=/boot/os2_d.b。

      作为一个特殊的功能模块,any_d.b已不合时宜,在0.20版以后的lilo程序包中已不再包含它并将其功能整合进chain.b,os2_d.b亦有所变动。它们的功能可用如下语句代替。

      例:

       other = /dev/hdb1

         loader = /boot/any_d.b

      替换为:

       other = /dev/hdb1

         map-drive = 0×80

         to = 0×81

         map-drive = 0×81

         to = 0×80

      对于os2_d.b:

       other = /dev/hdb1

         loader = /boot/os2_d.b

      替换为:

       other = /dev/hdb1

       loader = /boot/os2_d.b

       map-drive = 0×80

           to = 0×81

       map-drive = 0×81

         to = 0×80

      map-drive=〈bios_device_code〉

      通知chain.b装入重映射软驱或硬驱的内存驻留驱动程序,使用它可以引导不同硬盘上的不同操作系统,条件只有一个, BIOS必须能访问硬盘。“map-drive”后跟有变量“TO=〈盘设备号〉”。实际上,“map-drive”起到了“软”交换两个软驱或硬驱主、 从顺序的作用,避免了手工接线的麻烦。

      例:交换软驱

         map-drive = 0

         to = 1

         map-drive = 1

         to = 0

      交换硬驱(参看loader参数例)

      table=device

      指定包含非Linux系统分区的主设备。举例来说,如果Windows 95在第一个IDE硬盘的第一个基本分区上,即/dev/hda1上,那么必须定义table=/dev/hda 。

      三、核心参数

      如果LILO引导的是Linux系统,我们可用下面命令传递一些参数给Linux核心。除“literal”之外,它们也可用于全局参数区。

      append=string

      append传递一个特殊硬件的参数串string给Linux系统的核心。它常用来配置一些Linux不能正确测试到的硬件设备。例如:

    append = “hd=64,32,202″

      通知Linux核心,硬盘参数为64柱面、32磁头、202扇区。具体的参数串设置可参看/usr/doc/HOWTO/BootPrompt-HOWTO文件。

      literal=string

      类似于“append”,但它将撤消所有的其它核心参数(比如设置了root设备)。因为“literal”会不分青红皂白地撤消一些必需的、重要的参数,所以不能将它设置在全局参数区。

      ramdisk=size

      指定RAM盘的大小。size为零时不建立RAM盘。忽略此参数时,RAM盘大小由Linux核心引导映像决定。

      read-only

      通知LILO以只读方式载入根文件系统。通常我们在检查根文件系统时需要将根文件系统以只读方式载入。Linux系统在每次启动时也会将根文件系统以只读方式载入,待例行的文件系统检查后再将其重新载入为读写方式。

      read-write

      通知LILO以读写方式载入根文件系统。

      root=root-device

      指定被安装根文件系统硬盘分区设备。

      vga=mode

      指定引导Linux系统时的VGA模式。有以下取值:

      normal:常规80×25文本模式

      extended (or ext): 80×50文本模式

      ask: 引导时询问用户使用哪一种VGA模式,这时敲回车键将显示一个可分配的VGA模式表。

      如果不指定VGA模式,系统将缺省地使用包含在系统核心里的VGA模式值。

      四、lilo.conf配置实例

      有了这些基础知识,我们可以很容易地按照自己的意图配置LILO。请看一个lilo.conf文件的例子:

      boot=/dev/hda         #将LILO安装在MBR。LILO作为主引导管理器

      message=/boot/message     #注释为/boot/message

      compact             #产生一个更小的“map”文件

      map=/boot/map         #指定“map”文件为/boot/map

      install=/boot/boot.b

      password=zhoudi         #设置口令

      vga=normal           #80×25文本模式

      linear             #使用“linear”地址

      prompt             #提示用户键盘输入

      timeout=50           #超时时长为5秒

      default=dos           #缺省引导label为dos的操作系统

      #设定Linux

      image=/boot/vmlinuz-2.0.34-1  

      #设置Linux核心引导映像

       label=linux         #标识为linux

       root=/dev/hda1       #设置根文件系统

       read-only          #LILO以只读方式载入根文件系统

      #设定MS-DOS或Windows 95

      other=/dev/hda2         #DOS分区为第一个IDE硬盘的第二分区

       label=dos          #标识为dos

       table=/dev/hda       #主设备为第一个IDE硬盘

      #设定SCO UNIX

      注意:SCO分区必须设为活动(active)分区并将LILO安装在MBR上。

      other=/dev/hda3

       label=sco

       table=/dev/hda

      这个例子中,LILO是作为主引导管理器来管理机器上所有操作系统的。LILO也可作为二级引导管理器,这只要将“boot”参数改为根分区就可做到。例如:

      boot=/dev/hda1

      以这种方式使用LILO时,Linux根分区必须用DOS或Linux的fdisk程序将其设置为活动分区,并且这种方式只对硬盘主分区(不是扩展或逻辑分区)有效。

      LILO还可以启动第二个以上的操作系统。在我的机器上有两块希捷硬盘,一块硬盘为8.4GB,另一块为1.2GB,都以LBA模式接在主IDE口 上。8.4GB跳线为主盘,1.2GB跳线为从盘,Linux核心很容易地就将它们辨认出来并能正常使用,1.2GB的硬盘上安装了MS-DOS 6.22。笔者是这样设置lilo.conf的:

      disk=/dev/hda

       bios=0×80      

      #由于IDE硬盘存在双硬盘问题,所以当启动DOS系统时,会提示“无系统盘或系统盘错!”,需修改程序如下。

    disk=/dev/hdb

       bios=0×81

      boot=/dev/hda

      map=/boot/map

      install=/boot/boot.b

      linear

      prompt

      timeout=50

      default=dos

      image=/boot/vmlinuz-2.2.11-1

       label=linux

       root=/dev/hda1

       read-only

      other=/dev/hdb1

       label=dos

       map-drive = 0×80

          to = 0×81

          map-drive = 0×81

          to = 0×80

      #交换两硬盘主、从顺序

       table=/dev/hdb

      配置好lilo.conf文件后,在root账户下执行lilo命令,新的LILO就被载入系统。上面第一个例子执行结果如下:

      #lilo

      Added linux

      Added dos*      

      Added sco

      (注:带*号的表示其为缺省操作系统)

      五、LILO提示信息

      LILO在运行时会给出一些提示信息,了解它的含义对我们正确配置lilo.conf或查找硬件错误是有帮助的。

      当LILO装入它自己的时候,显示单词 “LILO”:每完成一个特定的过程显示一个字母。如果LILO在某个地方失败了,屏幕上就停留几个字母,以指示错误发生的地方。

      注意,如果磁盘发生瞬间故障,可能会在第一个字母“L”后插入一些十六进制数字(磁盘错误码)。除非LILO停在那里并不停地产生错误码流,否则并不说明有严重问题。

      没有提示: LILO没有安装或者安装LILO的分区没有被激活。

      L〈错误码〉 : LILO的第一部分已经被装入并运行了,但它不能装入第二部分的引导程序。两位数字的错误码指示问题的类型(参见“磁盘错误码”),这种情况通常是在介质访问失败或硬盘参数错误。

      LI: LILO第一部分正确但是第二部分执行时出错。这一般是硬盘参数有误或/boot/boot.b被移动后没有重新运行map安装程序。

      LIL: LILO第二部分开始执行,但是不能从“map”文件中读取描述符表( descriptor table)。 这通常是因介质错误或磁盘参数有误引起的。

      LIL?: LILO在错误的地方加载。原因与“LI”大致相同。

      LIL-:描述符表(descriptor table)错误。典型原因是硬盘几何参数微妙的不匹配或/boot/boot.b被移动而没有运行map安装程序。

      LILO: LILO执行正确。

      1010101010: 分区情况已经改变却没有重新安装LILO,另外,超频也可能会出这种情况。

      六、磁盘错误码

      0×00:“内部错误”。 由LILO扇区读取子程序产生。可能是因为被破坏的文件,重建map文件试试看。另一个原因也许是,当使用“linear”参数时去访问超出1024的柱面。

      0×01:“非法命令”。这意味着LILO访问了BIOS不支持的硬盘。

      0×02:“没找到地址标记”。通常是介质问题,多试几遍看看。

      0×03:“写保护错”。 仅在写操作时出现。

      0×04:“扇区未找到”。典型的原因是硬盘参数错误。

      0×06:“激活顺序改变”。这应该是短暂的错误,再试一次。

      0×07:“无效的初始化”。BIOS没有适当地初始化硬盘,热启动一次或许有帮助。

      0×08:“DMA超出限度”。这不应当发生,重新启动。

      0×09:“DMA试图越过64kB边界”。这不应当发生,建议忽略“compact”参数。

      0x0C:“无效的介质”。这不应当发生,重新启动看看。

      0×10:“CRC错误”。检测到介质错误。建议多启动几次,运行map安装程序,把map文件从坏块写到正常的介质上。

      0×11:“ECC纠正成功”。读错误发生然后被纠正,但是LILO并不知道这个情况,终止了启动过程。

      0×20:“控制器错误”。一般不应发生。

      0×40:“定位失败”。这可能是介质问题,重新启动试试。

      0×80:“磁盘超时”。磁盘或驱动器没有准备好。介质坏了或磁盘没有转,也有可能是从软盘启动而没有关上软驱门。

      0xBB:“BIOS错误”。一般不应发生,如果反复发生,可考虑去掉“compact”参数或添加删除“linear”参数。

      如果在写操作过程中发生错误,则在错误码前有个前缀“w”。尽管写错误并不影响启动过程,但它们暗示了系统中存在某种错误,建议重新配置LILO成只读格式(read-only)。

    LILO的配置相当复杂,读者只有在实践中不断学习、摸索,勤于思考,才能用好LILO。

    展开全文
  • LILO配置攻略

    2004-11-07 13:13:00
    与其他常用的引导加载程序相比,LILO引导方式显得更具有艺术性,对其深入的理解,将有助于我们方便地处理多操作系统、网络引导、大硬盘及大内存等诸多棘手的问题。 通常我们谈到LILO,会涉及到两个方面——LILO引导...
    LILO(Linux Loader)是Linux自带的一个优秀的引导管理器,使用它可以很方便地引导一台机器上的多个操作系统。与其他常用的引导加载程序相比,LILO引导方式显得更具有艺术性,对其深入的理解,将有助于我们方便地处理多操作系统、网络引导、大硬盘及大内存等诸多棘手的问题。 

      通常我们谈到LILO,会涉及到两个方面——LILO引导程序和LILO安装命令/sbin/lilo。为了不至于混淆这两个概念,本文将用LILO表示LILO引导程序,而lilo表示/sbin/lilo。

      一般地,LILO使用一个文本文件/etc/lilo.conf作为其配置文件。lilo读取lilo.conf,按照其中的参数将特定的LILO写入系统引导区。任何时候,修改了/etc/lilo.conf,都必须重新运行lilo命令,以保证LILO正常运行。lilo.conf使用的配置参数很多,配置起来也相当复杂。下面以RedHat Linux为例作一些初步探讨,RedHat的lilo程序包版本为0.20,别的Linux发行版本可能会有所出入,但不会太大。

      lilo.conf文件中的配置参数分为两部分,一部分是全局参数,另一部分是引导映像参数。与Linux系统其他的配置文件一样,“#”号后的一行文字表示注释。

      一、LILO的全局参数

      全局参数是全程有效的,它可以出现在文件lilo.conf中的任何地方。以下是具体的参数项:

      1.backup=backup-file

      在装入LILO之前将原先的引导区备份到backup-file,而不是RedHat 缺省的/boot/boot.NNNN。也可以备份到一个设备上,如: /dev/null。注意:如果原先已有一个同名文件,该参数将被忽略。我们可通过这个备份恢复原先的引导扇区:

      dd if=/boot/boot.NNNN of=/dev/hda bs=446 count=1

      恢复原先的MBR。(注:虽然boot.NNNN有512字节,但只能恢复前446字节到MBR。)

      2.boot=boot-device

      指定一个用于安装LILO的设备。通常LILO可安装在如下几个地方:

      MBR:第一个硬盘的主引导区, 对应于/dev/hda、/dev/sda等。

      Root:Linux根分区的超级块(Super block), 对应于/dev/hda1、/dev/hda2、/dev/hda5、/dev/sda1、/dev/sda5等。

      Floppy:LILO安装在软盘上,对应于/dev/fd0。

      不指定时,lilo缺省安装在根分区超级块上。

      3.compact

      该参数用于优化LILO,产生一个更小的“map”文件。如果在软盘上安装LILO,强烈推荐使用此参数。

      4.default=name

      指定缺省引导的操作系统。如default=dos 表示将label为DOS的系统作为缺省引导的操作系统。如不指定该参数,排在lilo.conf中的第一个操作系统将作为缺省操作系统。

      5.delay=tsecs

      在没有指定“prompt” 参数时,LILO将立即引导缺省的操作系统,“delay”参数在这之间插入一段延时,单位是1/10秒。

      6.disk=device-name

      为某些非标准硬盘定义参数。其内部还包括有几个可选的子参数。

      bios=〈bios_device_code〉:  设备号。十六进制数0x80表示第一硬盘;0x81表示第二硬盘,依此类推。

      sectors=〈sectors〉:硬盘扇区数。

      heads=〈heads〉:硬盘磁头数。

      cylinders=〈cylinders〉:硬盘柱面数。受系统BIOS限制,柱面数必须在1024以内。

      partition=〈partition_device〉:用于物理定位特殊硬盘上的分区,有一个子参数start。

      start=〈partition_offset〉:每一分区的起始扇区。

      例如:

      disk = /dev/sda

      bios=0x80

      #指定SCSI硬盘为第一硬盘

       sectors = 32

       heads = 64

       cylinders=632

      #硬盘参数为632/64/32

      partition=/dev/sda1

      start=2048

      #第一分区起始扇区为2048

      partition = /dev/sda2

      start=204800

      #第二分区起始扇区为204800

       partition = /dev/sda3

        start = 500000

       partition = /dev/sda4

        start = 900000

      当机器上有两块硬盘,一块为SCSI硬盘,另一块为IDE硬盘时,LILO很有可能无法自动识别它们的主、从顺序,这时可进行如下设置:

      disk = /dev/sda

       bios = 0x80

      disk = /dev/hda

       bios = 0x81

      #SCSI硬盘为主硬盘,IDE硬盘为从硬盘

      该参数是为Linux无法识别的硬盘准备的,一般Linux可以正确识别和使用大多数硬盘,除非最坏的情况,否则不用设置它。

      7.force-backup=backup-file

      类似“backup”参数,但是将覆盖原有的同名文件。

      8.ignore-table

      通知lilo忽略无效的硬盘分区表。

      9.install=boot-sector

      LILO实际上包含有几个部分,而这几部分都存放在/boot/boot.b文件中。如果忽略“install”参数,则lilo认为install=/boot/boot.b。

      10.linear

      产生用于替换硬盘sector/head/cylinder地址(硬盘几何参数)的linear扇区地址。linear地址在运行时产生并且不依赖于硬盘几何参数。某些SCSI硬盘和一些以LBA方式使用的IDE硬盘可能会需要使用这个参数。注意,在将LILO安装到软盘上时不能使用“linear”参数。

      11.lock

      出现LILO提示后立即按最近一次的引导映像启动计算机。也就是说,当我们在lilo.conf中加入了该参数,然后运行lilo安装LILO,再重新启动计算机,这时LILO会提示我们选择引导哪一种操作系统,这一选择将被LILO记录下来,即“锁定”,下次启动计算机时,LILO将忽略“delay”、“prompt”等参数及键盘输入而直接跳转到其“锁定”的操作系统。

      12.map=map-file

      指定map文件。 没有本项时缺省使用/boot/map,每次执行lilo命令都会产生一个新的map文件。

      13.message=message-file

      该命令用于指定一个包含注释信息的文件,该文件将在系统打印出字符串“LILO”之前显示。如果在LILO启动时想获取较多的信息,可以编辑一个文件,再使用该命令就可以了。文件中如果包含有ASCII码为0xFF的字符(Ctrl+L)则表示清屏。注意,文件的大小不能超过65535个字节。每次文件改变之后,都必须重新运行lilo命令重建map文件,以保证其正常显示。

      14.optional

      当用于启动的引导映像不存在时,该参数使lilo忽略它。这对用于测试一个不长期存在的Linux核心是有用的。

      15.password=password

      为LILO设置口令保护,每次重新启动计算机提示用户输入口令。设置了口令后,建议将lilo.conf的文件属性改为600,以免让非root用户看到口令。

      16.prompt

      给出“boot:”提示,强制LILO等待用户的键盘输入,按下回车键则立即引导默认的操作系统,而按下Tab键则打印可供选择的操作系统。当“prompt”被设置而“timeout”没有被设置时,系统会一直处于等待状态而不引导任何操作系统。不设置该参数时,LILO不给出“boot:”提示而直接引导默认操作系统,除非用户按下了Shift、Ctrl、Alt三键中的任何一个。大多数情况下,如果你的硬盘上有多个操作系统,建议使用参数,它留给用户一个选择的余地。

      17.restricted

      与“password”联用,使“password”仅作用于在LILO提示后有命令行输入的时候。

      18.serial=parameters

      使用串行口控制。这将初始化指定的串口,并将使引导管理器能接受来自串口的输入。从串口发送一个中断信号相当于从控制台键盘上按下Shift键,它同样会被LILO捕捉到。如果不能保证来自串口的访问和控制台一样安全,比方说有一个modem连在串口上,建议为每个引导映像加上口令保护(password)。参数串有如下语法:

      〈port〉[,〈bps〉[〈parity〉[〈bits〉]]]

      〈port〉:数字表示的串口号,0表示COM1,其余类推。所有四个串口都可被使用。

      〈bps〉:串口速率,支持110、 150、300、600、1200、2400、4800和 9600 bps,缺省值为2400bps。

      〈parity〉:设置串口校验。一般情况下,LILO忽略奇偶校验。n表示无校验,e 表示偶校验,o 表示奇校验。

      〈bits〉:字符位数,只能取7或8,缺省值是8。当有奇偶校验时只能取7。

      如果设置了“serial”,即使没有设置“delay”,系统也会将“delay”项的值自动增加20。

      19.timeout=tsecs

      设置等待键盘输入的时长,单位是0.1秒。超过这段时间没有输入则为超时,系统将自动引导缺省的操作系统。如果不设置本参数,缺省的超时时间长度为无穷大。

      二、引导映像参数

      引导映像参数作用于每一个引导映像区。如果某一引导映像参数(例如:password)与全局参数的定义相抵触,则以该引导映像参数的定义为准,但仅限于该引导映像区。以下是具体参数项:

      image=pathname

      设置包含Linux核心引导映像的文件或设备。

      other=pathname

      设置包含非Linux操作系统,如DOS、SCO UNIX、Windows 95等系统引导映像的文件或设备。

      range=start-end

      如果“image”参数被设置为一个设备,则Linux核心引导映像的存放范围必须被设置。

      image = /dev/fd0

      range = 1-512  

      # Linux核心引导映像存放在软盘上的第一至512扇区

      label=name

      通过此参数来标识当前操作系统,即操作系统名。用户可通过在LILO提示后输入“标识”来决定引导哪一个操作系统。

      alias=name

      给当前操作系统起一别名。

      lock

      类似同名全局参数。

      optional

      类似同名全局参数。

      password=password

      类似同名全局参数。

      restricted

      类似同名全局参数。

      以下两个参数项用于非Linux操作系统:

      loader=chain-loader

      如果要引导第二块硬盘上的非Linux操作系统或将LILO安装到软盘,这个参数是必需的。不指定时,缺省值是/boot/chain.b。如启动第二块硬盘上的MS-DOS或Windows 95,可定义loader=/boot/any_d.b;对于OS/2,则为loader=/boot/os2_d.b。

      作为一个特殊的功能模块,any_d.b已不合时宜,在0.20版以后的lilo程序包中已不再包含它并将其功能整合进chain.b,os2_d.b亦有所变动。它们的功能可用如下语句代替。

      例:

       other = /dev/hdb1

         loader = /boot/any_d.b

      替换为:

       other = /dev/hdb1

         map-drive = 0x80

         to = 0x81

         map-drive = 0x81

         to = 0x80

      对于os2_d.b:

       other = /dev/hdb1

         loader = /boot/os2_d.b

      替换为:

       other = /dev/hdb1

       loader = /boot/os2_d.b

       map-drive = 0x80

           to = 0x81

       map-drive = 0x81

         to = 0x80

      map-drive=〈bios_device_code〉

      通知chain.b装入重映射软驱或硬驱的内存驻留驱动程序,使用它可以引导不同硬盘上的不同操作系统,条件只有一个, BIOS必须能访问硬盘。“map-drive”后跟有变量“TO=〈盘设备号〉”。实际上,“map-drive”起到了“软”交换两个软驱或硬驱主、从顺序的作用,避免了手工接线的麻烦。

      例:交换软驱

         map-drive = 0

         to = 1

         map-drive = 1

         to = 0

      交换硬驱(参看loader参数例)

      table=device

      指定包含非Linux系统分区的主设备。举例来说,如果Windows 95在第一个IDE硬盘的第一个基本分区上,即/dev/hda1上,那么必须定义table=/dev/hda 。

      三、核心参数

      如果LILO引导的是Linux系统,我们可用下面命令传递一些参数给Linux核心。除“literal”之外,它们也可用于全局参数区。

      append=string

      append传递一个特殊硬件的参数串string给Linux系统的核心。它常用来配置一些Linux不能正确测试到的硬件设备。例如:

      append = "hd=64,32,202"

      通知Linux核心,硬盘参数为64柱面、32磁头、202扇区。具体的参数串设置可参看/usr/doc/HOWTO/BootPrompt-HOWTO文件。

      literal=string

      类似于“append”,但它将撤消所有的其它核心参数(比如设置了root设备)。因为“literal”会不分青红皂白地撤消一些必需的、重要的参数,所以不能将它设置在全局参数区。

      ramdisk=size

      指定RAM盘的大小。size为零时不建立RAM盘。忽略此参数时,RAM盘大小由Linux核心引导映像决定。

      read-only

      通知LILO以只读方式载入根文件系统。通常我们在检查根文件系统时需要将根文件系统以只读方式载入。Linux系统在每次启动时也会将根文件系统以只读方式载入,待例行的文件系统检查后再将其重新载入为读写方式。

      read-write

      通知LILO以读写方式载入根文件系统。

      root=root-device

      指定被安装根文件系统硬盘分区设备。

      vga=mode

      指定引导Linux系统时的VGA模式。有以下取值:

      normal:常规80×25文本模式

      extended (or ext): 80×50文本模式

      ask: 引导时询问用户使用哪一种VGA模式,这时敲回车键将显示一个可分配的VGA模式表。

      如果不指定VGA模式,系统将缺省地使用包含在系统核心里的VGA模式值。

      四、lilo.conf配置实例

      有了这些基础知识,我们可以很容易地按照自己的意图配置LILO。请看一个lilo.conf文件的例子:

      boot=/dev/hda         #将LILO安装在MBR。LILO作为主引导管理器

      message=/boot/message     #注释为/boot/message

      compact             #产生一个更小的“map”文件

      map=/boot/map         #指定“map”文件为/boot/map

      install=/boot/boot.b

      password=zhoudi         #设置口令

      vga=normal           #80x25文本模式

      linear             #使用“linear”地址

      prompt             #提示用户键盘输入

      timeout=50           #超时时长为5秒

      default=dos           #缺省引导label为dos的操作系统

      #设定Linux

      image=/boot/vmlinuz-2.0.34-1  

      #设置Linux核心引导映像

       label=linux         #标识为linux

       root=/dev/hda1       #设置根文件系统

       read-only          #LILO以只读方式载入根文件系统

      #设定MS-DOS或Windows 95

      other=/dev/hda2         #DOS分区为第一个IDE硬盘的第二分区

       label=dos          #标识为dos

       table=/dev/hda       #主设备为第一个IDE硬盘

      #设定SCO UNIX

      注意:SCO分区必须设为活动(active)分区并将LILO安装在MBR上。

      other=/dev/hda3

       label=sco

       table=/dev/hda

      这个例子中,LILO是作为主引导管理器来管理机器上所有操作系统的。LILO也可作为二级引导管理器,这只要将“boot”参数改为根分区就可做到。例如:

      boot=/dev/hda1

      以这种方式使用LILO时,Linux根分区必须用DOS或Linux的fdisk程序将其设置为活动分区,并且这种方式只对硬盘主分区(不是扩展或逻辑分区)有效。

      LILO还可以启动第二个以上的操作系统。在我的机器上有两块希捷硬盘,一块硬盘为8.4GB,另一块为1.2GB,都以LBA模式接在主IDE口上。8.4GB跳线为主盘,1.2GB跳线为从盘,Linux核心很容易地就将它们辨认出来并能正常使用,1.2GB的硬盘上安装了MS-DOS 6.22。笔者是这样设置lilo.conf的:

      disk=/dev/hda

       bios=0x80      

      #由于IDE硬盘存在双硬盘问题,所以当启动DOS系统时,会提示“无系统盘或系统盘错!”,需修改程序如下。

      disk=/dev/hdb

       bios=0x81

      boot=/dev/hda

      map=/boot/map

      install=/boot/boot.b

      linear

      prompt

      timeout=50

      default=dos

      image=/boot/vmlinuz-2.2.11-1

       label=linux

       root=/dev/hda1

       read-only

      other=/dev/hdb1

       label=dos

       map-drive = 0x80

          to = 0x81

          map-drive = 0x81

          to = 0x80

      #交换两硬盘主、从顺序

       table=/dev/hdb

      配置好lilo.conf文件后,在root账户下执行lilo命令,新的LILO就被载入系统。上面第一个例子执行结果如下:

      #lilo

      Added linux

      Added dos*      

      Added sco

      (注:带*号的表示其为缺省操作系统)

      五、LILO提示信息

      LILO在运行时会给出一些提示信息,了解它的含义对我们正确配置lilo.conf或查找硬件错误是有帮助的。

      当LILO装入它自己的时候,显示单词 “LILO”:每完成一个特定的过程显示一个字母。如果LILO在某个地方失败了,屏幕上就停留几个字母,以指示错误发生的地方。

      注意,如果磁盘发生瞬间故障,可能会在第一个字母“L”后插入一些十六进制数字(磁盘错误码)。除非LILO停在那里并不停地产生错误码流,否则并不说明有严重问题。

      没有提示: LILO没有安装或者安装LILO的分区没有被激活。

      L〈错误码〉 : LILO的第一部分已经被装入并运行了,但它不能装入第二部分的引导程序。两位数字的错误码指示问题的类型(参见“磁盘错误码”),这种情况通常是在介质访问失败或硬盘参数错误。

      LI: LILO第一部分正确但是第二部分执行时出错。这一般是硬盘参数有误或/boot/boot.b被移动后没有重新运行map安装程序。

      LIL: LILO第二部分开始执行,但是不能从“map”文件中读取描述符表( descriptor table)。 这通常是因介质错误或磁盘参数有误引起的。

      LIL?: LILO在错误的地方加载。原因与“LI”大致相同。

      LIL-:描述符表(descriptor table)错误。典型原因是硬盘几何参数微妙的不匹配或/boot/boot.b被移动而没有运行map安装程序。

      LILO: LILO执行正确。

      1010101010: 分区情况已经改变却没有重新安装LILO,另外,超频也可能会出这种情况。

      六、磁盘错误码

      0x00:“内部错误”。 由LILO扇区读取子程序产生。可能是因为被破坏的文件,重建map文件试试看。另一个原因也许是,当使用“linear”参数时去访问超出1024的柱面。

      0x01:“非法命令”。这意味着LILO访问了BIOS不支持的硬盘。

      0x02:“没找到地址标记”。通常是介质问题,多试几遍看看。

      0x03:“写保护错”。 仅在写操作时出现。

      0x04:“扇区未找到”。典型的原因是硬盘参数错误。

      0x06:“激活顺序改变”。这应该是短暂的错误,再试一次。

      0x07:“无效的初始化”。BIOS没有适当地初始化硬盘,热启动一次或许有帮助。

      0x08:“DMA超出限度”。这不应当发生,重新启动。

      0x09:“DMA试图越过64kB边界”。这不应当发生,建议忽略“compact”参数。

      0x0C:“无效的介质”。这不应当发生,重新启动看看。

      0x10:“CRC错误”。检测到介质错误。建议多启动几次,运行map安装程序,把map文件从坏块写到正常的介质上。

      0x11:“ECC纠正成功”。读错误发生然后被纠正,但是LILO并不知道这个情况,终止了启动过程。

      0x20:“控制器错误”。一般不应发生。

      0x40:“定位失败”。这可能是介质问题,重新启动试试。

      0x80:“磁盘超时”。磁盘或驱动器没有准备好。介质坏了或磁盘没有转,也有可能是从软盘启动而没有关上软驱门。

      0xBB:“BIOS错误”。一般不应发生,如果反复发生,可考虑去掉“compact”参数或添加删除“linear”参数。

      如果在写操作过程中发生错误,则在错误码前有个前缀“w”。尽管写错误并不影响启动过程,但它们暗示了系统中存在某种错误,建议重新配置LILO成只读格式(read-only)。

      LILO的配置相当复杂,读者只有在实践中不断学习、摸索,勤于思考,才能用好LILO。
    展开全文
  • 深入理解LILO

    千次阅读 2001-06-11 20:13:00
    其加载器LILO(Linux Loader)是一个灵活的引导加载程序,与其他常用的引导加载程序相比,LILO引导方式显得更具有艺术性,对其深入的理解,将有助于我们方便地处理多重系统、网络引导、大硬盘及大内存等诸多棘手的...

    深入理解LILO

    null null

    返回〗〖转发〗

    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/hda 
    #指定包含分区表的硬盘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/hda#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~255,而磁道上可能的扇区号码是1~63,以这24位最多可以定址8455716864个位元组(7.875GB)。 

      但不幸的是,标准的IDE介面容许256个扇区/磁道、65536个柱面及16个磁头。它自己本身可以存取237= 137438953472(128 GB),但是加上BIOS方面63个扇区与1024个柱面的限制后只剩528482304(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=/vmlunuz 
      append="hd=2100,16,23" 
      root=/dev/hda2 
      label=linux 

      四、LILO的卸载 

      当LILO覆盖了引导扇区时,它会保留一个引导扇区的备份在/boot/boot.xxyy中,其中xxyy是16进制的设备主/次号码 
    (major/minor numbers),利用命令“ls -l /dev/device”就可获得硬盘或分区的主/次号码。如果这些备份文件已经存在,那么,当你重新安装LILO或重构内核时,它将不再生成此文件,这就保证了此备份文件是最原始的引导扇区。 

      若要卸载LILO,你只需恢复初始的引导扇区就可以了。例如:LILO安装在/dev/had,对应的备份文件为/boot/boot.0300,简单地使用下面的命令即可: 

      dd if=/boot/boot.0300 of=/dev/had bs=446 count=1 

      当然,若想完全卸掉Linux,必须用Linux的fdisk对Linux分区进行破坏,因为DOS的fdisk无法移去非DOS分区。 

      关于LILO值得探讨的问题还有很多,但只要懂得了其内部机制,对更复杂的实际情况也能较圆满地解决。

    责任编辑:知识库管理员(2000-12-28 14:10)
    展开全文
  • LILO配置攻略

    千次阅读 2001-06-11 20:03:00
    与其他常用的引导加载程序相比,LILO引导方式显得更具有艺术性,对其深入的理解,将有助于我们方便地处理多操作系统、网络引导、大硬盘及大内存等诸多棘手的问题。 通常我们谈到LILO,会涉及到两个方面——LILO
  • LINUX LILO若干问题探讨

    2001-06-04 16:49:00
    其加载器LILO(Linux Loader)是一个灵活的引导加载程序,与其他常用的引导加载程序相比,LILO引导方式显得更具有艺术性,对其深入的理解,将有助于我们方便地处理多重系统、网络引导、大硬盘及大内存等诸多棘手的问题...
  • 目前,PC的性能越来越强大,... LILO是现在许多Linux缺省的引导程序,它的全称是Linux Loader,拥有很强大的功能。Grub 也是一个多重启动管理器,它的全称是Grand Unified Bootloader。Grub的功能与LILO一样,也是在多
  • GRUB与LILO相比,它有以下特点(转)[@more@]◆ 支持大硬盘 只要安装时大硬盘是在LBA模式下,GRUB就可以引导根分区在8GB以外的操作系统。◆ 支持开机画面 GRUB支持在引导开机的同时显示一个开机画面,可以制作...
  • grub引导程序

    2015-10-25 12:45:19
    linux上常用的两种引导程序:lilo,grub由于lilo不支持大硬盘,因此主要使用在嵌入式平台上grub作为一个引导程序,由于其丰富的特性,而MBR只有512bytes,又因为MBR中要包含分区表64bytes,还有4bytes用于保存magic,...
  • 灵活运用LILO和NT启动管理器 osloader

    千次阅读 2001-06-04 16:54:00
    灵活运用LILO和NT启动管理器 多重启动软件很多,如System Commander、PQ Boot Magic,都很出色,界面美观,功能强大,但他们都要求安装时改写硬盘引导记录,这就出现了问题,一些杀毒软件会将他们改写的MBR误认为...
  • 多重引导管理器Grub使用详解

    千次阅读 2008-12-04 15:09:00
    目前发行的Linux版本大多用LILO实现多系统引导,但不同版本的LILO有同样的一个问题:根分区(/boot分区)不能分在1024柱面(约8.4GB)以后,否则LILO不能安装或者安装后不能正确引导系统,而使用大硬盘是必然趋势,...
  • linux系统引导过程(最全版)

    千次阅读 2010-09-06 00:07:00
    MBR中存放的是一段很小的程序,他的功能是从硬盘读取操作系统核心文件并运行,因为这个小程序太小了,因此通常这个小程序不具备直接引导系统内核的能力,他先去引导另一个稍微一点的小程序,再由这个一点的小程序去...
  • Grub是现在各个Linux发行版本所采用的主要的引导程序,正是因为Grub的使用使多个系统共存成为可能,从而我们可以在我们的硬盘空间 同时安装多个操作系统进行开发,学习或是体验.当然在Grub之前我们所采用的是LILO的...
  • linux grub 引导启动过程详解

    千次阅读 2010-12-14 21:25:00
    BIOS开始检测系统参数,如内存的大小,日期和时间,磁盘 设备及这些磁盘设备用来引导的顺序,通常情况下,BIOS都是被设置成首先检查 软驱或光驱(或两者都检查),然后再尝试从硬盘引导。如果在这些可移动的设...
  • Grub是现在各个Linux发行版本所采用的主要的引导程序,正是因为Grub的使用使多个系统共存成为可能,从而我们可以在我们的硬盘空间 同时安装多个操作系统进行开发,学习或是体验.当然在Grub之前我们所采用的是LILO的...
  • 同时安装多个操作系统的方法有很多,例如Linux Lilo引导、WindowsNT OS Loader引导、System Commander引导、Partition Magic改变激活分区等,但总是比较麻烦而且难度较,而且每个系统所占据的硬盘空间也比较多。...
  • 同时安装多个操作系统的方法有很多,例如LinuxLilo引导、WindowsNTOSLoader引导、SystemCommander引导、PartitionMagic改变激活分区等,但总是比较麻烦而且难度较,而且每个系统所占据的硬盘空间也比较多。...
  • 4 Linux的启动

    2019-09-27 04:09:03
    GRUB:多引导,多重启动管理器3.GRUB完全可以代替LILO来完成对Linux的引导,与LILO相比,它有以下几个特点:支持大硬盘 支持开机画面 两种执行模式 分区位置改变后不需要重新配置 4.GRUB的相关文件...
  • Grub的安装方法

    2012-02-24 22:55:11
    LILO:Linux Loader,是个很悠久的引导程序,但是有个缺陷,不适合引导大硬盘。 GRUB:Grand Unified Bootloader,可以引导多种操作系统,不仅可以引导Linux,还可以引导windows操作系统,甚至还能引导freeBS...
  • 怎样安装grub

    2012-02-24 10:44:20
    如何安装grub grub是个bootloder 之前linix用的是lilo,只能...而不能引导硬盘,后来grub的诞生,让lilo退出了。grub即是grand unified bootloader 可以引导linux,unix ,windows等系统。 下面让我们来介...
  • 1.Linux下的分区类型 (1)/boot:包含了操作系统的内核和在启动系统过程...事实上,那是Lilo(LILO是一个在系统启动时运行的程序,它允许选择用于引导计算机的操作系统,可以用LILO引导几个不同的操作系统,如Linux和M
  • grub的特点(转)

    2007-08-14 23:05:06
    grub的特点(转)[@more@] grub可以代替lilo来完成对Linux的引导,特别适用于linux与其它操作系统共存情况,与lilo相比,它有以下特点: 支持大硬盘 现在大多数Linux发行...

空空如也

空空如也

1 2 3
收藏数 54
精华内容 21
关键字:

lilo引导大硬盘