当前位置:首页 > 嵌入式 > 嵌入式软件
[导读] 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 
[!--empirenews.page--]
本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭