bluerats329 发表于 2015-12-27 21:05:00

uefi中出现的windows boot manager,什么时间写进去的?

本帖最后由 bluerats329 于 2015-12-27 21:37 编辑

我用VMWARE虚拟机 做UEFI实验。

安装完win10后,uefi中会出现windows boot manager的启动项。
如果把这个"windows boot manager"启动项删除,
下一次启动时,又会出现。
经过查资料和做实验,我知道
这个"windows boot manager"启动项是保存在UEFI的NVRAM,且是指向ESP分区中\efi\microsoft\boot\bootmgfwi.efi的启动方式.

我的疑问是,删除 "windows boot manager"启动项 后,
再启动win10时,win10是什么时间写进UEFI的NVRAM中的。
或者说是 运行哪个文件时写进去的,或者哪个文件中的哪个函数 写进去的。

我做实验,删除 "windows boot manager"启动项 后,
通过选择硬盘引导,
在所选硬盘上,找到ESP分区后,通过bootx64.efi文件找到BCD引导选项,根据BCD内的系统引导选项,选择引导的系统。

在BCD中,设置多个选项,让系统启动时,在次停留。然后断电。
此时查看UEFI中,仍然没有"windows boot manager"启动项,
如果通过BCD引导后,出现启动画面。如果出现启动画面5秒后(机械硬盘,非固态硬盘),断电关机,仍然没有"windows boot manager"启动项,

至少出现启动画面10秒后,断电,才能在UEFI的NVRAM中出现 "windows boot manager"启动项。


不知表达清楚没有,有疑问,请随时拍砖。

bluerats329 发表于 2015-12-27 21:22:59

谢谢 回帖。

想弄清楚,转圈时,运行哪个文件时写进去的,或者哪个文件中的哪个函数 写进去的。

bluerats329 发表于 2015-12-28 07:55:18

感谢回复!
我只知道由winload.efi来加载内核,不懂内核的加载过程。

bluerats329 发表于 2015-12-28 08:18:30

本帖最后由 bluerats329 于 2015-12-28 08:21 编辑

感谢及时回帖!
百度过了,
启动过程,大多数都是讲到winload.
win8 win10的内核加载过程,没找到。
如果有研究过这个问题的,回复一下,最好了。

懂win8或win10由winload加载内核过程的,贴出来,我来做实验也不错。

感觉不是BOOTMGR或对应的EFI启动器*.EFI,因为启动画面开始后,这些文件都运行完了。
虚拟机不在手头,没做实验。


“如果基础的不懂,就不需要懂的,”“不玩了。”。贴主这种心态,我不太认同。请原谅。

lbw2007 发表于 2015-12-28 08:44:21

大家都对这个问题不感兴趣。
就如同大神所说,仔细想一下自己就可以推测出来。
支持楼主的学习精神!

bluerats329 发表于 2015-12-28 08:51:10

lbw2007 发表于 2015-12-28 08:44
大家都对这个问题不感兴趣。
就如同大神所说,仔细想一下自己就可以推测出来。
支持楼主的学习精神!

谢谢表扬。
确实能推测个大概,但我想知道更具体的知识。
继续等,
有时间,我也会继续自己找资料,做实验。

lbw2007 发表于 2015-12-28 09:16:01

bluerats329 发表于 2015-12-28 08:51
谢谢表扬。
确实能推测个大概,但我想知道更具体的知识。
继续等,


如果我没猜错的话应该是bcdedit写入的。因为在BCD里面也存在windows boot manager。
或者是某个程序调用bcdedit来写入的。

求道者 发表于 2016-1-4 10:26:57

https://wiki.archlinux.org/index.php/Unified_Extensible_Firmware_Interface_(简体中文)#Windows_.E6.94.B9.E5.8F.98.E4.BA.86.E5.90.AF.E5.8A.A8.E6.AC.A1.E5.BA.8F

求道者 发表于 2016-1-4 10:38:00

求道者 发表于 2016-1-4 10:26
https://wiki.archlinux.org/index.php/Unified_Extensible_Firmware_Interface_(简体中文)#Windows_.E6.94 ...

windows boot manager有时候会写个四五个
你问我是谁写的我只能说不知道

兴许写这个wiki词条的人知道吧

zengqcyxx 发表于 2016-3-5 17:18:44

首次安装系统后,它第一次进入系统是调用bootx64.efi才进入的。这个"windows boot manager"是你首次安装并进入系统后,系统调用bcdedit向UEFI固件写入的,因此第二次进入系统就是调用\efi\microsoft\boot\bootmgfwi.efi。你说将windows boot manager删除,它就会检测有否bootx64.efi,进入系统它又帮你重新写入修复。
------------------------------------------------------------------
你将bootx64.efi和windows boot manager删除,看你能进入系统不!\efi\boot\bootx64.efi是U盘和硬盘默认加载项的路径,是放在盘里的。windows boot manager是放在UEFI固件(bios)里的,存放地方不一样。假如其中一个地方出错,另一个帮你修复而已,这样可以使用你能正常进入系统。
页: [1]
查看完整版本: uefi中出现的windows boot manager,什么时间写进去的?