您的位置 首页 ADAS

解读LINUX和LILO

Linux的引导可以采用多种方式,其加载器LILO(Linux Loader)是一个灵活的引导加载程序,与其他常用的引导加载程序相比,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~255,而磁道上或许的扇区号码是1~63,以这24
位最多能够定址8455716864个位元组(7.875GB)。

但不幸的是,规范的IDE介面容许256个扇区/磁道、65536个柱
面及16个磁头。它自己自身能够存取237= 137438953472(128 GB),
可是加上BIOS方面63个扇区与1024个柱面的约束后只剩528482304(504
MB)能够定址得到。

对策:在硬盘的前500MB中区分350MB(/dev/hda1)给DOS,150MB(/dev/hda2)给Linux,
谙嘤Φ呐渲梦募中λ得饔才痰牟问?
Boot=/dev/had
… …
Disk=/dev/had
bios=0x80
sectors=63
heads=16
cylinders=2100
image=/vmlinuz
append=hd=2100,16,23
root=/dev/hda2
label=linux

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qiche/adas/300763.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部