从软盘启动计算机是最简单的,当然也是最基础的。在下面的章节中,我们都可以看到软盘启动计算机的方式严重的影响了从硬盘、光盘启动计算机,几
乎都很类似,这也不奇怪,毕境最早出现在计算机上的就是软驱,而任何技术的发展都是以前面的技术为基础,这样一步步发展而来的。
我们熟悉的1.44M软盘有两面,每一面有80个磁道,每个磁道有18个扇区,每个扇区有512字节(2 * 80 * 18 * 512
= 1474560 = 1.44
MB)。引导记录是放在这张磁盘的第一个扇区上,也就是0面0磁道1扇区(这里扇区号从1开始编号)。而且引导记录有个一标志,就是最后两个字节(511
字节及512字节)是“55AA”。当BIOS读取第一个扇区时,它会检查最后两个字节是不是“55AA”。若是,BIOS就认为这是一个引导记录,然后
就跳到此扇区开始处开始执行,否则,认为此软盘没有引导记录,而开始查找下一个驱动器是否含有引导记录。
MBR全称是Master Boot
Record,硬盘主引导记录,它存在于硬盘的第一个物理扇区,也就是0面0磁道1扇区(其实硬盘的结果在逻辑上可以看为与软盘一样,也有面、磁道、扇
区,只不过面更多,每面的磁道数更多,每磁道上的扇区数更多罢了)。还记得在软盘时,0面0磁道1扇区也是主导扇区么?不过这里称之为主引导扇区,自然与
软盘上的引导扇区不同。
软盘上的引导扇区的作用是把软盘上存放的真正的操作系统内核读到内存中,然后跳到内核去执行。而MBR的作用却是找到硬盘上的活动分区,然后把
活动分区上的引导记录读到内存中,然后再跳到此引导记录中去执行,后面的过程就与从软盘启动计算机一致了。这里,你可以把硬盘上的活动分区都看成一是个软
盘。我们知道一个硬盘可以分成多个分区,也就是说一个硬盘可以视为由多个软盘组成,每一个分区都可以有自己的引导记录,这就如每个软盘上都有自己的引导记
录一样。那么哪一个分区(软盘)用来真正引导计算机呢?这就由MBR来完成,MBR查看每个分区记录,当找到一个活动分区时,就把此活动分区的引导记录载
入。显然,必须有一个地方来存放硬盘的分区记录,这就是所谓的硬盘分区表。这个硬盘分区表也在MBR中,不过MBR只有一个扇区大小,既要有用来查找硬盘
分区表的代码,还要包含硬盘分区表,所以这个硬盘分区表不可能很大。实际上,这个表只有四个表项,也就是说在一块硬盘里,最多有4个分区能用来引导电脑。
再来完整的看看MBR的流程,首先MBR被BIOS载入到0x7C00处,然后BIOS跳转到0x7C00处执行,MBR先把自己搬移到0×0600
处(因为以后活动分区的引导记录要放在0x7C00处),随后MBR开始查找内部的硬盘分区表表项。每个硬盘分区表表项的第一个字节只能是0×80或者0
×00。如果是0×80表示这是一个活动分区,然后MBR再从这个表项中读出此分区在硬盘上的位置,将此分区的第一个扇区(含有此分区的引导记录)读入
0x7C00处,然后跳到0x7C00处执行。如果表项的第一个字节是0×00,则查找下一个表项,直到四个表项都找完为止。如果此第一个字节既不是0×
80又不是0×00,则打印一条错误信息。
MBR的整个结构如图所示1):
| 地址 | 说明 | 长度(Byte) |
| 0×000 | MBR中的执行代码 | 440 |
| 0x1B8 | 磁盘商标(可选) | 4 |
| 0x1BE | 分区表(共4项,每项16字节) | 64 |
| 0x1FE | 引导记录标志(55AA) | 2 |