无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 6545|回复: 10
打印 上一主题 下一主题

问下不点及各位,bootmgr是通过bios找到grldr并加载的吗

[复制链接]
1#
发表于 2018-11-16 23:28:01 | 显示全部楼层
本帖最后由 sunsea 于 2018-11-16 23:40 编辑

……bootmgr我没记错的话是两个部分构成的,一个十六进制的桩和32位的保护模式代码,内部名称叫做bootmgr.exe,是个Native模式可执行程序(啥是Native模式?开机的时候磁盘检查程序运行的那个模式),后者压缩的,前者负责解压并提供使用BIOS的基本磁盘访问(证据是它能没任何驱动访问AHCI的盘子,BIOS可是一旦加载了操作系统的AHCI驱动就不能再用BIOS的驱动了,Intel的AHCI规范里明确写着的)

bootmgr.exe里已经确认的有如下功能(剩下的我没研究过,不敢乱说)
1.读BCD,显示启动菜单(最基本的注册表操作能力)
2.最基本的Win32代码执行环境(可能移植了一部分ntoskrnl.exe的功能)(证据是它直接执行winload.exe,而且仔细看看boot文件夹下是有几个dll和exe的,都是Native程序,明显这个bootmgr.exe创建了最基本的Win32代码执行环境)
3.FAT和NTFS基本文件系统驱动
4.查找文件能力

至于bootmgr怎么找文件的……BCD里存储了文件所在的【磁盘签名】(MBR里的0x1B4处的4字节数据)和【分区起始扇区】,这是bootmgr用来找文件的数据

bootmgr.exe会按以上按图索骥找你的文件

然后如果是Windows的引导程序winload.exe则直接执行……如果是grldr,ntldr等等,bootmgr统一再用一次那个十六进制的桩返回,当做【实模式】代码加载

点评

对bootmgr很好的解读知识 --------------------------------- 最近看了xp启动过程,NTLDR也是启动内建驱动以识别分区: "NTLDR启动内建的mini-file system drivers,通过这个步骤,使NTLDR可以识别每一个用NTFS  详情 回复 发表于 2018-11-17 11:51

评分

参与人数 1无忧币 +5 收起 理由
yjqd + 5 对bootmgr很好的解读知识

查看全部评分

回复

使用道具 举报

2#
发表于 2018-11-16 23:29:32 | 显示全部楼层
不点 发表于 2018-11-9 10:44
bootmgr 找到 grldr,不一定是采用 BIOS 方式,而可能是采用它自己的方式(比如它自己就有可能带有硬盘、U  ...

看一下楼上吧……

bootmgr应该是创建了【最基本的Win32代码执行环境】,然后如同创建进程一般【执行】了Winload.exe,winload.exe已经是Win32代码了
回复

使用道具 举报

3#
发表于 2018-11-17 12:07:24 | 显示全部楼层
不点 发表于 2018-11-9 10:44
bootmgr 找到 grldr,不一定是采用 BIOS 方式,而可能是采用它自己的方式(比如它自己就有可能带有硬盘、U  ...

刚刚查了下资料,bootmgr是int13读盘

winload.exe也是int13读盘!!!!只有当ntoskrnl.exe读注册表装入Miniport之后才是驱动读盘!!!

我现在挺想知道微软是如何做Windows Go To的……USB的int13可以说非常恶劣的环境了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-6-16 00:27

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表