📄 593.html
字号:
cellspacing=0 cellpadding=3 width="95%" border=0 align="center">
<tbody>
<tr>
<td noWrap background="images/bgline.gif" tppabs="http://www.linuxhero.com/docs/images/bgline.gif">
<div align=center><font class=normalfont>搜索文章:
<input type=hidden value=result name=action2>
<input type=radio checked value=title name=type>标题
<input type=radio value=content name=type>内容
<input type=image src="images/button_go.gif" tppabs="http://www.linuxhero.com/docs/images/button_go.gif" border=0 name=image2>
</font></div>
</td>
</tr>
<tr>
<td noWrap>
<div align="center">
<input maxlength=100 size=30 name=keyword2>
</div>
</td>
</tr></tbody>
</table>
</form>
</TD>
<TD rowSpan=2><IMG src="images/header_r1_c7.gif" tppabs="http://www.linuxhero.com/docs/images/header_r1_c7.gif" width=26 border=0 name=header_r1_c7></TD>
<TD><IMG height=83 src="images/spacer.gif" tppabs="http://www.linuxhero.com/docs/images/spacer.gif" width=1 border=0></TD></TR>
<TR>
<TD background="images/bgline.gif" tppabs="http://www.linuxhero.com/docs/images/bgline.gif"><IMG height=22
src="images/header_r2_c1.gif" tppabs="http://www.linuxhero.com/docs/images/header_r2_c1.gif" width=296 border=0
name=header_r2_c1></TD>
<TD background="images/bgline.gif" tppabs="http://www.linuxhero.com/docs/images/bgline.gif" colSpan=5>
<DIV align=right><FONT class=normalfont>当前位置:
<A href="index.html" tppabs="http://www.linuxhero.com/docs/index.html">本站首页</A>
<font color="#FF6699">>></font>
<A href="type5.html" tppabs="http://www.linuxhero.com/docs/type5.html">安装启动</A> | <A href="copyright.html" tppabs="http://www.linuxhero.com/docs/copyright.html">版权说明</A></font></DIV>
</TD>
<TD><IMG height=22 src="images/spacer.gif" tppabs="http://www.linuxhero.com/docs/images/spacer.gif" width=1
border=0></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=10 cellPadding=0 width="100%" bgColor=#ffffff
border=0>
<TR>
<TD>
<TABLE cellSpacing=0 cellPadding=3 width="100%" border=0>
<TR>
<TD vAlign=top align=middle width="60%">
<TABLE cellSpacing=0 cellPadding=0 width="100%"
background="images/back.gif" tppabs="http://www.linuxhero.com/docs/images/back.gif" border=0>
<TBODY>
<TR>
<TD vAlign=top width="80%">
<DIV align=center>
<FORM action="search.html" tppabs="http://www.linuxhero.com/docs/search.html" method=get>
</FORM>
<TABLE cellSpacing=0 cellPadding=0 width="95%"
border=0><TBODY>
<TR>
<TD background="images/bgi.gif" tppabs="http://www.linuxhero.com/docs/images/bgi.gif"
height=30></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=3 width="95%"
align=center border=0>
<TBODY>
<TR>
<TD>
<TABLE cellSpacing=0 cellPadding=3 width="100%"
border=0>
<TBODY>
<TR>
<TD vAlign=top>
<p><FONT class=normalfont><B><font color=blue>lilo原理</font></B></FONT><BR><FONT class=smallfont color=#ff9900>2004-04-23 15:18 pm</FONT><BR><FONT class=normalfont>作者:作者<br>来自:Linux知识宝库<br>联系方式:无名<br><br>1一般的开机引导过程。<br>
在PC机上,最初的启动由BIOS完成。当开机自检结束时(Power-On Self Test,POST),BIOS尝试读入软盘的第一个扇区,把它看作引导扇区。若没有软盘,则尝试读入硬盘的第一个扇区。新的BIOS可以改变这种次序,先从硬盘启动。甚至从光盘启动。由于大多数BIOS不提供SCSI支持,若要从SCSI磁盘启动,SCSI适配器要提供他自己的BIOS.如果什么都找不到,老的BIOS会启动内置的ROM BASIC,或直接打印"NO<br>
ROM-BASIC".<br>
操作系统的启动分几步完成。由于引导扇区比较小,通常它主要任务是读入第二个loader,第二个loader再读入第三个loader,直到整个操作系统被完全读入。<br>
DOS 引导区:<br>
OFFSET<br>
0x000 JMP xx Near jump into the program code<br>
0x003 Disk parameters<br>
0x03E Program code loading the DOS kernel<br>
0x1FE 0xAA55 Magic number for BIOS<br>
可见,引导区的结构相对比较简单。它的长度总是512字节。以上,磁盘参数只对DOS有意义。重要的是引导区从0开始,以BIOS的magic number 结束。<br>
从软盘启动比较简单,因为只有一个引导扇区:第一个扇区。硬盘则困难一些,它被分成很多分区。但是,BIOS根本不管分区信息,它象对待软盘一样对待硬盘,仍读入第一个分区,叫作:master boot record.(MBR).<br>
所以MBR也应该和上面介绍的结构一样:从0开始,以BIOS的magic number 结束<br>
在MBR的最后部分,有分区表。如下图:<br>
<br>
OFFSET Length<br>
0x000 0x1BE code loading and starting the boot sector of the active<br>
partitian<br>
0x1BE 0x010 partition1<br>
0x1CE 0x010 partition2<br>
0x1DE 0x010 partition3<br>
0x1EE 0x010 partition4<br>
0x1FE 0x0012 0xAA55 Disk parameters<br>
<br>
每个分区信息占16字节,结构如下:<br>
1 BOOT Boot flag: 0=not active ,0x80 active<br>
1 HD Begin:head number<br>
2 SEC CYL Begin:sector and cylinder number of boot sector<br>
1 SYS System Code:0x83 linux , 0x82 linux swap etc.<br>
1 HD End:head number<br>
2 SEC CYL End: sector and cylinder number of boot sector<br>
4 low byte high byte Relative sector number of start sector<br>
4 low byte high byte Number of sectors in the partition<br>
所以硬盘可以有4个分区。这四个分区叫做主分区:primary prititions.假如它们不够用,可以设置所谓的扩展分区。 扩展分区包含至少一个逻辑分区。扩展分区的第一个扇区结构类似MBR,它的分区表的第一表项对应第一个逻辑分区。如果存在第二个逻辑分区,那么分区表的第二个表项就包含了一个指针。这个指针指向第一个逻辑分区后面的一个地址。这个地址包含一个分区表。该分区表的第一表项<br>
对应第二个逻辑分区。这样就组成一个链表,从而扩展分区可以有任意多的逻辑分区。<br>
每一个主分区和扩展区都包含一个引导扇区。系统只能从这几个地方之一启动。BOOT标志决定哪个区被引导。<br>
原来,只有主分区,因此,MS-DOS的fdisk和大多数同类工具只能激活主分区..MBR的代码要作以下的操作:<br>
1:确定活动分区。<br>
2:使用BIOS,将活跃分区的启动扇区读入。<br>
3:跳到启动扇区的0位置。<br>
MBR的空间足够完成这些工作。如上所述,每个分区理论上包含一个引导扇区,而且,存在的第二个硬盘也包含和第一个类似的结构。MBR完全可以容纳一个复杂的引导程序。即所谓的boot manager,动态的决定活动分区。linux 为我们提供了lilo<br>
<br>
2 LILO:the linux loader<br>
LILO引导扇区包括一个分区表的空间,所以,LILO即可以安装在MBR中,也可以安装在某个分区的引导扇区。LILO拥有DOS引导扇区的所有功能,而且,它还可以引导逻辑扇区和第二硬盘分区。LILO还可以和另外的引导者合作(例如:NT loader),这样,用户就可以有很多选择。<br>
(注:以下几个标题,为防止引起歧义,用原文)<br>
2.1 LILO started by MS-DOS MBR<br>
如果系统至少有一个linux主分区,(非交换区,且在第一硬盘上),那么LILO就可以安装在这些分区中的一个。当 LILO对应分区被激活后,引导过程如下:<br>
BIOS 读入 MBR<br>
MBR 读入 活跃主分区:LILO所在的分区。<br>
LILO 引导linux或另外的操作系统。<br>
要引导其它OS且不用LILO很简单,激活那个分区。linux分区没有任何变化,非常安全。<br>
<br>
2.2 LILO started by a boot manager<br>
假如用户不想删除老的boot manager,或者某个OS LILO不能引导,可以考虑该途径。<br>
1. 2. 假如 boot manager 可以引导第二硬盘分区,linux可以装在第二硬盘上。<br>
3 有些 boot manager 甚至可以引导逻辑分区,那LILO就可以装在逻辑分区上。<br>
当然,也要注意以下情况:<br>
1 某些操作系统直接改写MBR,这会将原来的boot manager破坏。<br>
2 重新分区会破坏扩展分区的引导扇区,这是LILO可能要重装。<br>
当安装新的系统时,是否要重新安装(linux)依靠新的boot manager,要么LILO引导扇区被注销,要么boot manager 为它提供一个引导项。重新分区或分区格式化会将LILO和linux全部删除。<br>
<br>
2.3 LILO占据MBR<br>
假如整个linux系统都在第二硬盘上,且第一硬盘没有扩展分区,那么,LILO只有装在MBR上。这样,会将老的MBR冲去,所以,在安装LILO前,要将老的MBR(包括分区表)做一个备份。DOS下有很多工具可以完成这个任务。在linux下,这样备份:<br>
<br>
# dd if=/dev/hda of=/backup/MBR bs=512 count=1<br>
<br>
写会使用命令:<br>
# dd if=/backup/MBR of=/dev/hda bs=446 count=1<br>
这样,原来的MBR就被写会但不包括分区表。如果分区表也要恢复,那么bs=512.<br>
注意,这样,新的分区表会被破坏!<br>
<br>
2.4 LILO 文件<br>
与LILO有关的文件通常放在/boot/下,配置文件lilo.conf在/etc/下。包含实际引导系统信息的映射文件有/sbin/lilo安装。对于任何LILO安装,配置文件应该被定置以适合个人需要。<br>
The configuration file:配置文件<br>
基本上,配置文件是一些变量赋值。每一行包含一个标志变量或一个变量赋值.配置文件被特殊的变量赋值分成几个区,每个区引导一个linux或其它OS.<br>
下面解释常见的行:<br>
<br>
boot = device<br>
说明那一个设备或哪一个分区包含引导扇区。假如没有给boot赋值,取当前缺省值。<br>
<br>
compact<br>
激活一种模式,在此模式下,LILO一次向BIOS请求读入相邻的几个分区。这极大的缩短了装载时间,特别是从软盘启动。<br>
<br>
delay=tenths<br>
以10秒为单位,规定LILO在引导第一个引导配置前应等待用户的时间。若没有定义,则直接引导。<br>
<br>
Linear<br>
使LILO生成线性地址,而不使用通常的Sector/Head/Cylinder机制。linux地址机制可以不依赖磁盘的物理结构。<br>
<br>
install = boot sector<br>
使用指定的boot sector写入引导扇区,缺省用/boot/boot.b<br>
<br>
disktab=disktab<br>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -