|
在分析MBR的结构之前,先有来看看计算机的引导顺序(System Boot Sequence)
Step 1. 内部电源打开,初始化,等待一小段时间用来产生稳定的电流。如果主板芯片和CPU收到了不符合规定的电流,将自动产生一个RESET信号。在主板没有收到电源的Power Good信号之前,重复步骤1。
Step 2. 执行BIOS中0FFF0h处的代码。这里只有一条JMP指令,将跳转到真正的BIOS启动程序处。
Step 3. BIOS开始加电自检(Power-On Self Test, POST),如果出现错误,启动停止。成功的话执行INT 19h(SYSTEM - BOOTSTRAP LOADER)
Step 4. BIOS开始寻找显卡,找到的话将执行显卡的BIOS。接着显卡初始化,将显示一段显卡信息,我们开机看到的第一屏就是它。
Step 5. BIOS开始执行所有其他设备的BIOS,包括软驱,硬盘等。
Step 6. BIOS显示启动信息
Step 7. BIOS开始额外的检测。一般有内存检测,如果内存有问题,将显示错误消息。
Step 8. BIOS探测所有的硬件,将显示如硬盘/光区信息等
Step 9. BIOS给出一个已知硬件的列表
Step 10. BIOS按照设置的驱动器顺序找驱动器,如果驱动器存在的话继续找启动扇区,软驱/硬盘的启动扇区都在0柱0头1扇区(cylinder 0, head 0, sector 1)
Step 11. 将启动扇区读到内存0000:7c00处,接着INT 19h开始执行0000:7c00处代码
Step 12. 如果找不到驱动器,系统显示错误信息并停止。通常是"No boot device"或"NO ROM BASIC -SYSTEM HALTED"
上面是冷启动的过程,热启动将从步骤8开始
磁盘的启动扇区就是主引导记录(Master Boot Record),包括0柱0头1扇区的512个字节,它的任务是完成BIOS到操作系统的交接。
MBR的大体结构: 偏移 内容 0000 MBR程序代码 01BE 分区表 01FE 结束标志
分区表结构 BYTE 1 如果是引导分区,就是80H,如果不是,就是00H 2-4 是该分区的起始扇区号 5 标志字节,比如05表示扩展分区 6-8 该分区的终止扇区号 9-12 该分区已使用的扇区数 13-16 该分区总共占用的扇区数
这是从我的硬盘上提取的MBR(硬盘是Maxtor的金钻20G,netfay的电脑早过时了),不同型号的硬盘MBR稍有不同,不过功能都是一样的
0000 33 C0 8E D0 BC 00 7C FB-50 07 50 1F FC BE 1B 7C 3.....|.P.P.... [1] [2] [3] [4] [5] [6] [7] 下一页
|