Boot Sector结构、系统启动过程简介


一.
Boot Sector的组成

Boot Sector 也就是硬盘的第一个扇区(注10柱面,0磁道,1扇区)(注2 1磁道=16扇区,1扇区=512字节), 它由MBR (Master Boot Record), DPT (Disk Partition Table)Boot Record ID三部分组成.
MBR
又称作主引导记录占用 Boot Sector 的前 446 个字节 ( 0 to 0x1BD ),
存放系统主引导程序 (它负责检查硬盘分区表、寻找可引导分区并负责将可引导分区的引导扇区(DBR)装入内存).
DPT
即主分区表占用 64 个字节 (0x1BE to 0x1FD), 记录了磁盘的基本分区
信息. 主分区表分为四个分区项, 每项 16 字节, 分别记录了每个主分区的信息
(
因此最多可以有四个主分区).
Boot Record ID
即引导区标记占用两个字节 (0x1FE and 0x1FF), 对于合法
引导区, 它等于 0xAA55, 这是判别引导区是否合法的标志.
Boot Sector
的具体结构如下图所示:
0000 |————————————————|
| |
| |
| Master Boot Record |
| |
| |
|
主引导记录(446字节) |
| |
| |
| |
01BD | |
01BE |————————————————|
| |
01CD |
分区信息 1(16字节) |
01CE |————————————————|
| |
01DD |
分区信息 2(16字节) |
01DE |————————————————|
| |
01ED |
分区信息 3(16字节) |
01EE |————————————————|
| |
01FD |
分区信息 4(16字节) |
|————————————————|
| 01FE | 01FF |
| 55 | AA |
|————————————————|

. 系统启动过程简介

系统启动过程主要由一下几步组成(以硬盘启动为例):

1. 开机
2. BIOS
加电自检 ( Power On Self Test — POST )
内存地址为 0ffff:0000
3.
将硬盘第一个扇区 (001扇区, 也就是Boot Sector)
读入内存地址 0000:7c00 .(注3:遇到最后两个字节55 AA读入内存执行
4.
检查 (WORD) 0000:7dfe 是否等于 0xaa55, 若不等于
则转去尝试其他启动介质, 如果没有其他启动介质则显示
"No ROM BASIC"
然后死机.
5.
跳转到 0000:7c00 处执行 MBR 中的程序.
6. MBR
首先将自己复制到 0000:0600 , 然后继续执行.
7.
在主分区表中搜索标志为活动的分区. 如果发现没有活动
分区或有不止一个活动分区, 则转停止.
8.
将活动分区的第一个扇区读入内存地址 0000:7c00 .

(注4在分区表的四个记录中,一般来说有且只有一个记录的标记是活动的,MBR主要负责从活动分区中装载并运行系统引导程序)会去找到这个分区记录,根据记录的起始扇区加载该分区的逻辑 0 扇区(起始扇区)的内容到 0x07C0:0000,并且执行 JUMP 0x07C0:0000(按照规范,BOOT RECORD也应该从 0x07C0:0000 处开始执行,所以 MBR 通常都要先将自己搬移,以腾出位置去加载BOOT RECORD)。控制权切换到BOOT RECORDBOOT RECORD(包括boot loadergrub或lilo ) linux 为例,它会读取 linux 内核镜像到地址 0xArray000:0000,然后开始切换到 0xArray000:0000 继续运行。 MS-DOS 为例,则它会读取文件系统根目录下的 IO.SYS MSDOS.SYS 两个文件然后加载到内存中继续运行。
Array. 检查 (WORD) 0000:7dfe 是否等于 0xaa55, 若不等于则
显示 "Missing Operating System" 然后停止, 或尝试
软盘启动.
10.
跳转到 0000:7c00 处继续执行特定系统的启动程序.
11.
启动系统

以上步骤中 2,3,4,5 步是由 BIOS 的引导程序完成. 6,7,8,Array,10
步由MBR中的引导程序完成.

一般多系统引导程序 ( SmartFDISK, BootStar, PQBoot )
都是将标准主引导记录替换成自己的引导程序, 在运行系统启动程序
之前让用户选择要启动的分区.
而某些系统自带的多系统引导程序 ( lilo, NT Loader )
则可以将自己的引导程序放在系统所处分区的第一个扇区中, Linux
中即为 SuperBlock (其实 SuperBlock 是两个扇区).
: 以上各步骤中使用的是标准 MBR, 其他多系统引导程序的引导过程与此不同.

5:一些早期的引导型病毒,以及某些 bootloader,还有些硬盘加密卡,他们会修改 MBR,做个钩子出来。

原文转载自:华夏名网

“华夏名网” http://www.sudu.cn 和 http://www.bigwww.com 是成都飞数科技有限公司的网络服务品牌,专业经营虚拟主机,域名注册,VPS,服务器租用业务。公司创建于2002年,经过6年的高速发展,“华夏名网”已经成为我国一家知名的互联网服务提供商,被国外权威机构webhosting.info评价为十大IDC服务商之一。

原创文章,作者:优速盾-小U,如若转载,请注明出处:https://www.cdnb.net/bbs/archives/31663

(0)
上一篇 2024年9月28日
下一篇 2024年9月28日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

优速盾注册领取大礼包www.cdnb.net
/sitemap.xml