Boot SectorUnix系统 -电脑资料

电脑资料 时间:2019-01-01 我要投稿
【www.unjs.com - 电脑资料】

    Boot Sector结构、系统启动过程简介 解决困扰已久的系统启动过程,可以帮助使多系统共存,而不影响各自启动! Boot Sector 结构、系统启动过程简介 一. Boot Sector 的组成 Boot Sector 也就是硬盘的第一个扇区 (注 1 : 0 柱面, 0 磁道, 1 扇区) (注 2

   

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

解决困扰已久的系统启动过程,可以帮助使多系统共存,而不影响各自启动!

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

    一.Boot Sector的组成

       Boot Sector也就是硬盘的第一个扇区(注1:0柱面,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.将硬盘第一个扇区(0头0道1扇区,也就是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 SectorUnix系统

电脑资料

Boot SectorUnix系统》(https://www.unjs.com)。控制权切换到BOOT RECORD。BOOT RECORD(包括boot loader如grub或lilo等)以linux为例,它会读取linux内核镜像到地址0x9000:0000,然后开始切换到0x9000:0000继续运行。以MS-DOS为例,则它会读取文件系统根目录下的IO.SYS和MSDOS.SYS两个文件然后加载到内存中继续运行。)

       9.检查(WORD) 0000:7dfe是否等于0xaa55,若不等于则

         显示"Missing Operating System"然后停止,或尝试

         软盘启动.

       10.跳转到0000:7c00处继续执行特定系统的启动程序.

       11.启动系统...

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

    步由MBR中的引导程序完成.

       一般多系统引导程序(如SmartFDISK, BootStar, PQBoot等)

    都是将标准主引导记录替换成自己的引导程序,在运行系统启动程序

    之前让用户选择要启动的分区.

       而某些系统自带的多系统引导程序(如lilo, NT Loader等)

    则可以将自己的引导程序放在系统所处分区的第一个扇区中,在Linux

    中即为SuperBlock (其实SuperBlock是两个扇区).

       注:以上各步骤中使用的是标准MBR,其他多系统引导程序的引导过程与此不同.

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

    原文转自:http://www.ltesting.net

最新文章