尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

主引导记录(MBR)启动流程

主引导记录(MBR)启动流程 从固件到MBR主引导记录的启动流程是x86计算机开机过程中的一个关键接力环节。这个过程的核心可以概括为BIOS/UEFI固件完成硬件自检后将硬盘第一个扇区的MBR代码加载到内存地址0x7C00然后跳转过去执行。整个流程可以细分为以下几个步骤它像是一场标准的“接力赛”第一棒固件准备 (BIOS/UEFI)上电与自检按下电源键后CPU执行其复位向量处的代码并启动BIOS/UEFI固件。固件首先执行加电自检POST初始化CPU、内存等关键硬件。寻找启动设备POST完成后固件会根据CMOS中的启动顺序依次尝试从硬盘、U盘、光驱等设备中寻找可启动的程序。第二棒加载MBR到0x7C00识别MBR当固件检查到某个硬盘时它会读取该硬盘的第一个扇区即0柱面、0磁头、1扇区。这个扇区就是MBR。验证合法性固件会检查这个扇区的最后两个字节。如果它们等于魔数0x55AA就认为这是一个有效的MBR可以进行引导。加载至固定地址确认无误后固件通过调用INT 0x19中断服务程序将这个512字节的MBR代码复制到内存中一个特定的位置——物理地址0x7C00。第三棒跳转执行MBR加载完成后固件执行一条跳转指令jmp 0:0x7C00将CPU的控制权正式移交给刚刚加载到0x7C00的MBR程序。自此启动过程从“固件主导”进入“引导程序主导”的阶段。幕后细节MBR自举与Bootloader启动MBR程序本身只有512字节空间非常有限。它的主要工作是为后续更复杂的Bootloader如GRUB做准备。在移交控制权之前MBR通常会自我复制与“搬家”为了腾出0x7C00这个关键地址空间给后续将加载的操作系统引导扇区许多MBR程序会首先将自己从0x7C00复制到内存中的另一个空闲位置如0x0600然后跳转到新位置继续执行。扫描并加载活动分区MBR会解析其内部的分区表位于偏移量0x1BE处找到被标记为“活动”可引导的主分区。然后它会将这个活动分区的第一个扇区即该分区的引导扇区PBR加载到内存地址0x7C00。最终跳转最后MBR执行跳转指令将控制权交给位于0x7C00的活动分区引导程序PBR。这个PBR通常就是更复杂的Bootloader如GRUB的stage1再由它去加载并启动操作系统内核。
返回列表