- 论坛徽章:
- 0
|
第三讲:LINUX 引导流程
[知识要点]
² LINUX引导的三个阶段
² 可能的故障现象与如何排除
3.1 第一阶段
3.1.1 开机----------启动由BIOS完成----------当开机自检结束时(Power-On Self Test,POST)-------BIOS尝试读入软盘的第一个扇区,把它看作引导扇区。若没有软盘,则尝试读入硬盘的第一个扇区。新的BIOS可以改变这种次序,先从硬盘启动。甚至从光盘启动。由于大多数BIOS不提供SCSI支持,若要从SCSI磁盘启动,SCSI适配器要提供他自己的 BIOS.-------硬盘主引导扇区MBR-----加载lilo。
F从软盘启动比较简单,因为只有一个引导扇区:第一个扇区。硬盘则困难一些,它被分成很多分区。但是,BIOS根本不管分区信息,它象对待软盘一样对待硬盘,仍读入第一个分区,叫作:master boot record.(MBR).
3.1.2 硬盘主引导扇区
1. 位置:0道0 面第一扇区。
2. 产生时间:硬盘分区时创建。
3. 读取方法:
一步:WIN98启动盘启动A:\>DEBUG回车
二步:_A0
MOV AX,0201
MOV BX,100
MOV CX,1
MOV DX,80
INT 13
回车
_G=0 E 回车
_D2B0 显示数据
4. 改写方法
_E+地址
5. 保存方法
_A0
MOV AX,0301
MOV BX,100
MOV CX,1
MOV DX,80
INT 13
回车
_G=0 E 回车
_Q
6.引导扇区内容(512字节)
(1) 主引导扇区引导程序(446字节)
(2) 分区表数据(4*16字节)
(3) 分区表标志 55AA(2字节)
7. 硬盘分区表
A 功能:记录分区的大小,2. 状态,3. 类型等信息。
B 字节:16个字节。
C 存贮位置:相对于主引导扇区的第2BE 处。
D 各字节数据含义
数据0 分区引导标志=80 活动分区=00 非活动分区
数据1 分区起启磁头号
数据2 分区起启扇区号
数据3 分区起启磁道号
数据4 分区类型(01,04,06代表基本分区)
(05代表扩展分区)
(0B 代表FAT32位分区)
数据5 分区结束磁头号
数据6 分区结束磁道号
数据7 分区结束扇区号
数据8-11 32位本分区之前的扇区数
数据12-15 32位本分区之后的扇区数
[附]DEBUG常用命令
1. 功能:调试汇编程序,可利用它来读取硬盘中的数据。
2. 启动:A:\>DEBUG
_(光标变横杠)
3. 命令特点:单个字母,不分大小写, 后加参数。
4. 常见命令
(1)D 显示数据
(2)E 修改一个数据
(3)F 修改一批数据
(4)R 显示寄存器值
(5)A 汇编指令
(6)N 起名
(7)L 加载
(8)U 返汇编
(9)W 写盘
(10)Q 退出。
FMBR的代码要作以下的操作:
1:确定活动分区。
2:使用BIOS,将活跃分区的启动扇区读入。
3:跳到启动扇区的0位置。
MBR完全可以容纳一个复杂的引导程序。即所谓的boot manager,动态的决定活动分区。Linux 为我们提供了lilo
3.2 LILO:the linux loader
LILO引导扇区包括一个分区表的空间,所以,LILO即可以安装在MBR中,也可以安装在某个分区的引导扇区。LILO拥有DOS引导扇区的所有功能,而且,它还可以引导逻辑扇区和第二硬盘分区。LILO还可以和另外的引导者合作(例如:NT loader),这样,用户就可以有很多选择。 (注:以下几个标题,为防止引起歧义,用原文)
3.2.1 LILO started by MS-DOS MBR
如果系统至少有一个linux主分区,(非交换区,且在第一硬盘上),那么LILO就可以安装在这些分区中的一个。当 LILO对应分区被激活后,引导过程如下:
BIOS 读入 MBR-----MBR 读入 活跃主分区:LILO所在的分区。------LILO 引导Linux或另外的操作系统。-----要引导其它OS且不用LILO很简单,激活那个分区。Linux分区没有任何变化,非常安全。
3.2.2 LILO started by a boot manager
假如用户不想删除老的boot manager,或者某个OS LILO不能引导,可以考虑该途径。
A. 假如boot manager可以引导扩展区,那儿是LILO的好去处。
B. 假如 boot manager 可以引导第二硬盘分区,linux可以装在第二硬盘上。
C. 有些 boot manager 甚至可以引导逻辑分区,那LILO就可以装在逻辑分区上。
F注意以下情况:
1 某些操作系统直接改写MBR,这会将原来的boot manager破坏。
2 重新分区会破坏扩展分区的引导扇区,这是LILO可能要重装。
3.2.3 LILO占据MBR
假如整个linux系统都在第二硬盘上,且第一硬盘没有扩展分区,那么,LILO只有装在MBR上。这样,会将老的MBR冲去,所以,在安装LILO前,要将老的MBR(包括分区表)做一个备份。DOS下3.1.2中介绍如何完成这个任务。在linux下,这样备份:
# dd if=/dev/had of=/backup/MBR bs=512 count=1
写会使用命令:
# dd if=/backup/MBR of=/dev/had bs=446 count=1
这样,原来的MBR就被写会但不包括分区表。如果分区表也要恢复,那么bs=512. 注意,这样,新的分区表会被破坏!
3.2.4 LILO 文件
与LILO有关的文件通常放在/boot/下,配置文件lilo.conf在/etc/下。包含实际引导系统信息的映射文件有/sbin/lilo安装。
#vi /etc/lilo.conf
boot=/dev/had //引导设备
map=/boot/map //引导位置
install=/boot/boot.b //引导文件
prompt //输入提示 LILO:
timeout=50 //等待时间
image=/boot/vmlinuz-2.2.5-15 //引导图象
label=linux
root=/dev/hda
read-only
other=/dev/hda1 //另一设备
label=dos
table=/dev/had
Ë实例:LINUX下安装WIN9X
&1 进入LINUX用FDISK命令分出一个FAT16的分区
&2 用WIN9X启动盘启动格式化该分区
&3 修改LILO配置文件,实现多重引导。
3.2 第二阶段
加载lilo------装载内核-----选择引导模式------引导LINUX。
由LILO引导,读取配置文件/etc/inittab中设置的系统运行级别,级别分类如下:
级别 内容
0 低级系统初始化、关闭电源
1 单用户或管理等级。可以运行象详细的磁盘检查等在多任务情况下可能运行的任务。
2 多用户方式但无网络支持。
3 全方位等级,启动全部功能。
4 暂时未使用
5 图形终端方式登录Linux
6 中断系统后重启,sync+reboot
s、S 单用户状态,用于LILO时引导名称后的参数,可处理root口令丢失时的补救。
可用runlevel查看系统当前运行级别,telinit 更改init状态。
实例: 修改该配置文件并测试结果
3.3 第三阶段
检测硬件-------启动服务-------LOGIN登陆
启动服务使用命令# ntsysv
F制作LINUX启动盘
#mkbootdisk –device /dev/fd0 2.2.16-22
[课后预习]
² 硬盘分区与连接的原理和方法
² 文件系统与操作系统的关系
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/5252/showart_1161952.html |
|