MBR启动流程
开机启动流程
- 开机
- BIOS加电自检
(POST--Power On Self Test)
,内存地址为0fff:0000
- 将硬盘第一扇区(0头0道1扇区,即Boot Sector)读入内存地址
0000:7c00
处 - 检查
(word)0000:7dfe
是否等于0xaa55
。若不等于则转去尝试其他介质;如果没有其它介质,则显示“No ROM BASIC”,然后死机 - 跳转到
0000:7c00
处执行MBR中的程序 - MBR先将自己复制到
0000:0600
处,然后继续执行 - 在主分区表中搜索标志为活动的分区,如果发现没有活动分区或者不止一个活动分区,则停止
- 将活动分区的第一个扇区读入内存地址
0000:7c00
处 - 检查
(word)0000:7dfe
是否等于0xaa55
,若不等于则显示 “Missing Operating System”,然后停止,或尝试软盘启动; - 跳转到0000:7c00处继续执行特定系统的启动程序
- 启动系统
以上步骤中(2),(3),(4),(5)步由BIOS的引导程序完成;(6),(7),(8),(9),(10)步由MBR中的引导程序完成.
一般多系统引导程序(如Smart Boot Manager, BootStar, PQBoot等)都是将标准主引导记录替换成自己的引导程序,在运行系统启动程序之前让用户选择想要启动的分区.而某些系统自带的多系统引导程序(如 LILO,NT Loader等)则可以将自己的引导程序放在系统所处分区的第一个扇区中,在Linux中即为两个扇区的SuperBlock. 注:以上步骤中使用的是标准的MBR,多系统引导程序的引导过程与此不同.
posted on 2014-11-12 11:25 joy.zhuang 阅读(973) 评论(0) 编辑 收藏 举报