分享
 
 
 

深入linux内核

王朝system·作者佚名  2006-12-17
窄屏简体版  字體: |||超大  

深入linux内核

深入linux内核 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、活动分区或引导软盘上时,作为原引导程序

的替身,它能引导任一硬盘任一分区上的Linux和其他操作系统。

----②除了引导扇区,它没有任何隐含文件,也不需要使用特定的分区,它的

配置文件可以在任何分区,甚至是存放在与Linux毫不相干的DOS分区的某个

子目录下。

----③它能引导几个不同的内核配置,甚至是几个不同的内核。

----④它能引导同一机器上的多个Linux版本。

----⑤它能从网络上引导Linux。

----正是由于LILO的灵活性,使得其配置变得相当复杂,当有多个系统共存时,

建议先安装其他操作系统,最后再安装Linux,这样,设置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=64,32,202"。

----label=:此参数为每个映像指定一个名字,以供引导时选择。

----install=:安装一个指定文件作为新的引导扇区,缺省为/boot/boot.b。

----table=:说明包含分区表的设备名,如果此参数忽略,引导加载程序将

不能传递分区信息到已引导的操作系统。

三、LILO典型配置方法

----通常情况下,Linux的安装程序自身就可以完成LILO的安装配置,从而较好

地解决多重系统的引导问题,如果系统不能自动完成这种配置,那么可以

通过手工修改配置文件/etc/lilo.conf来实现不同条件下的引导。

----1.当系统能自动完成配置时

----对于这种情况,只有一个建议:将LILO安装到Linux分区的根上,而不是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界面容许256个扇区/磁道、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是十六进制的设备主/次号码

(major/minornumbers),利用命令"ls-l/dev/device"就可获得硬盘或分区

的主/次号码。若要卸装LILO,只需恢复初始的引导扇区。例如:LILO

安装在/dev/had,对应的备份文件为/boot/boot.0300,使用下面的命令即可:

----ddif=/boot/boot.0300of=/dev/_hadbs=446count=1

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有