MBR 是如何找出活动分区的?是通过引导扇区中的NTLDR文件吗?

2025-04-25 09:39:04
推荐回答(1个)
回答1:

计算机启动的时候先把硬盘的第一个扇区加载到计算机内存的7C00h处,而这第一个扇区恰好就是MBR外加DPT(分区表)和最后的55AA结束标志。然后CPU的IP寄存器就会变成7C00h,然后从这里开始执行。MBR其实也就是一段汇编代码,用来判断紧随MBR之后的分区表中哪一个是活动分区(活动分区的标志是80h,非活动分区的标志是00h),找到哪个是活动分区后就会从分区表中读取该活动分区的硬盘地址(如果是C盘的话一般是1面0道1扇区,好像是的,记不清了。。。),然后用BIOS提供的中断(这个时候Windows还没有启动,所有只能用硬件中断)把这个扇区加载到内存之后就开始从这里运行了。而这个扇区放的就是windows的NTLDR。你开机的时候按F8进入Windows高级菜单就是由NTLDR来响应的。然后NTLDR会把CPU由实模式转换到保护模式,然后重新设置GDT和IDT等等,之后的事就是Windows内核做的了。。。

至于你说的MBR和NTLDR,其实完全没有关系,每个可以启动的计算机都有MBR,但只有装Windows的机器上才有NTLDR。。。

NTLDR其实就是NT Loader,负责把Windows启动时的代码加载到内存中执行。。。

还有上面说的7C00h其实是默认的,一定要加载到这个地方,否则计算机根本就不可能启动。。。