Linux 版 (精华区)
发信人: cliff (一颗红心·两手准备), 信区: Linux
标 题: 全面了解Linux加载器
发信站: 哈工大紫丁香 (2000年10月26日16:02:25 星期四), 转信
LILO的引导机制
计算机的启动是由BIOS控制的,在完成对硬盘配置的测试及初始化之后,便会
根据指定的引导信息,寻找加载硬盘、软盘或光盘的主引导记录MBR(Master Boot
Record)或引导扇区。只要把LILO安装在MBR或活动分区上,就能取得引导控制权
,由LILO完成各种引导过程。系统出现LILO boot:提示符后,按TAB键,显示可引
导选择项列表,然后输入选项或直接回车选择缺省配置。
与OS/2 Boot Loader和Partition Magic引导加载程序相比,LILO的灵活性更
高,其引导方式也更加丰富:
1.当LILO被安装在MBR上时,它能引导任意硬盘任一分区上的任一操作系统。
2.如果选择引导Linux,它还可以直接传递参数到系统内核。
3.能引导不同配置、不同版本的Linux内核。
4.能从网络引导Linux系统。
LILO的配置方法
LILO的配置一般有两种方法:命令配置和手工配置。通常情况下,在安装
Linux系统时就可以根据画面提示完成LILO的安装配置,从而解决多重系统的引导
问题。如果对系统的分区、设备配置不是很熟悉,或不能正确理解安装画面的英文
提示,可能无法正确安装配置。如果安装配置LILO失败,也不必大惊小怪,可使用
手工配置来解决。手工配置的方法是用vi编辑命令来编辑/etc目录下的lilo.conf
文本文件,然后在超级用户下执行lilo命令,将配置信息写入MBR即可。
常见问题及解决方法
1.系统安装完成后重新启动系统时,屏幕没有任何提示。出现这种情况说明
LILO没有正确安装到MBR。
解决方法:用软盘启动系统,检查/etc/lilo.conf文件配置是否正确。如果不
正确,可用vi编辑命令修改lilo.conf文件,然后再执行lilo命令将配置写入硬盘
引导区。至于配置细节,可从以下配置实例来说明。
例一.C盘为IDE接口,D盘为SCSI接口,引导文件在IDE硬盘上,根文件在
SCSI硬盘上,其配置文件/etc/lilo.conf的内容为:
# lilo configuration file
boot=/dev/had(设定boot所在的位置为IDE的MBR)
delay=100(启动一个引导的等待时间)
vga=normal(显示模式为标准VGA)
Prompt(响应键盘输入)
imgae=/vmlinuz(指定linux的核心文件)
root=/dev/sda1(指定linux所在硬盘及分区)
lable=linux(为系统起一个名字,以供引导时选择)
read-only
other=/dev/hda1(其他可引导设备)
label=dos(其他系统为DOS)
table=/dev/had(设定DOS所在分区)
例二.C盘和D盘均为SCSI接口,引导文件在C盘上,根文件在D盘上,光驱接口
为SCSI,其配置文件/etc/lilo.conf的内容为:
#lilo configuration file
boot=/dev/sha
delay=100
vga=normal
prompt
image=/vmlinuz
root=/dev/sdb1
label=linux
read-only
other=/dev/sda
label=dos
table=/dev/sda1
2.系统启动时出现L XXXX,其中XXXX为错误代码,范围是0x00-0x80。出现这
种画面时,可察看磁盘错误代码,尔后根据错误代码采取相应的措施。例如错误代
码0x04表示扇区没有找到,比较典型的原因是硬盘C、H、S参数(该参数可用
FDISK查到)不匹配。可以重新调整硬盘参数,再执行LILO。
3.系统启动时出现LILO后死机。出现这种情况一般有以下几种原因:(1)硬
盘C、H、S参数不匹配,重新调整硬盘参数后执行LILO;(2)使用双SCSI硬盘,
SCSI ID号设置不当,会出现系统自检为第二硬盘,而在安装系统时Linux认为是第
一硬盘,故在系统启动时不能正确装入。以笔者使用的AHA2940SCSI卡为例,如果
将两块硬盘的ID号都设置在ID7以前,就会出现上述情况。正确的设置方法是将第
一块硬盘设为ID0,第二块硬盘设为ID8,这样就不会出现上述情况了。
4.系统引导时能出现LILO,但在引导过程中找不到硬盘。这种情况一般是因为
Linux的主分区在1024磁道以外,解决的方法是重新安装Linux系统,将主分区调整
到1024磁道以内。
5.系统中既有IDE硬盘又有SCSI硬盘,Linux的根分区建在SCSI硬盘上,有些主
板在系统引导时出现LILO后死机。出现这种问题是因为系统不能确定是IDE为先还
是SCSI为先,这时可在lilo.conf文件加上以下语句解决:
disk=/dev/sda
bios=0x80(指定SCSI硬盘为第一硬盘)
sectors=63
heads=255(CHS的值根据实际填写)
cylinders=1216
disk=/dev/had
bios=0x81(指定IDE硬盘为第二硬盘)
sectors=63
heads=128(CHS的值根据实际填写)
cylinders=821
LILO的卸载
在反复执行LILO进行引导系统地安装过程中,要使LILO正确、可靠的安装,每
次最好对上次的安装进行卸载。LILO的卸载方式一般有两种,一种是DOS方式卸载
,具体步骤是在DOS命令行下执行fdisk/MBR,即可将LILO卸下;第二种是在Linux
系统下卸载。LILO在安装引导扇区时,一般会在/etc目录下保留一个原引导扇区的
备份文件boot.xxyy,其中xxyy是该引导设备的主、次设备号(Major/Minor
Number),Linux的各种设备均放在/dev目录下,利用ls -l命令就可获得各种设备
的主次设备号。IDE接口硬盘的主设备号一般为03,相应的备份文件为boot.0300。
SCSI硬盘的主设备号一般为08,相应的备份文件为boot.0800。使用下面的命令即
可卸下IDE或SCSI硬盘的LILO:
dd if=/boot/boot.0300 of=/dev/had bs=446 count=1
dd if=/boot/boot.0800 of=/dev/sda bs=446 count=1
建立MBR的备份
为了防止引导区被破坏而无法引导系统,可建立一个MBR的备份(包括分区表
),具体操作方法是:
dd if=/dev/had of=/dev/MBR bs=512 count=1
恢复MBR
当MBR被破坏,系统不能正常引导时,可用软盘引导系统,在LILO提示符下输
入:
mount root=/dev/sda1
将Linux引导起来,尔后执行:
dd if=/boot/MBR of=/dev/had bs=446 count=1
执行以上命令恢复MBR,不包括分区表,如果要连分区表一起恢复,则让
bs=512。
--
【★ 蒸不熟 煮不烂 ★】
【★ 剪不断 理还乱 ★】
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 192.168.0.200]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:6.020毫秒