djpxj 发表于 2022-1-31 07:57
用XORBOOT更方便,还好设置
liuzhaoyzz 发表于 2022-1-31 09:19
1、下载g4e的启动文件放到ESP分区\EFI\BOOT\下面,可以替换掉原来的bootx64.efi,前提是你清楚你的windows ...
liuzhaoyzz 发表于 2022-1-31 09:19
1、下载g4e的启动文件放到ESP分区\EFI\BOOT\下面,可以替换掉原来的bootx64.efi,前提是你清楚你的windows ...
前言: 1、本教程针对于UEFI启动来叙述的,根据普遍的支持UEFI的机器来叙述 2、本教程以Windows 8 X64 来作为参考 标题简要说明: Windows Boot Manager --------安装完Windows系统后而出现的启动选项(相关的信息存储在NVRAM),可以删除和建立和bcdboot.exe有关 Bootmgfw.efi --------引导Windows的引导文件 Bootx64.efi ---------UEFI的必需引导文件 bcdboot.exe--------修复UEFI启动的命令行工具,微软出品 开始前先引进两个概念: 计算机默认引导 -----------就是不管你的计算机有没有操作系统,定义了UEFI启动后将通过Bootx64.efi 引导你的计算机,并进入各种模式,维护、安装、计算机或者系统 这里是 Bootx64.efi ,它只是一个通用名,权限丰富且大于Windows 默认,就是说如果你的Windows 默认的启动文件不在了, 启动计算机默认的引导文件Bootx64.efi 也是可以启动计算机的。使用计算机默认文件随时可以在各种环境下启动计算机,EFI SHELL、ISO、 Windows、Linux...都可以,通吃型. Windows默认引导 -------就是你为计算机安装了操作系统,或者修复了UEFI引导后,启动菜单会有 Windows Boot Manager 选项,该选项默认从bootmgfw.efi 启动系统 bootmgfw.efi 该位置的该文件只能用于启动Windows,不是通用名,权限单一 ======================================================== 0、 对于UEFI启动环境来说,Bootx64.efi 用处更大,这里Bootx64.efi 是个通用名,就是所任意有效的efi改成Bootx64.efi 都被计算机启动加载,并启动。 bootmgfw.efi 不是通用名,只适合启动Windows。 当然对于UEFI启动Windows来说Bootx64.efi 和bootmgfw.efi 其实是同一个文件,二者的循环冗余校验CRC值是一样的。 他们都有启动windows的能力,但是身处的位置不一样, efi\boot\bootx64.efi efi\microsoft\boot\bootmgfw.efi 对系统的引导产生的影响肯定也不一样,下面我们来验证.... ====================================================== 从三个方向来讲:(以下结论都经过事实验证,经得住任何怀疑和猜测!!) ======================================================== 1、光盘介质UEFI启动【已验证】: 通过分析微软原装镜像的UEFI引导记录(efisys.bin)我发现,最初出光盘的引导文件是efi\boot\bootx64.efi,因为此项验证较简单,我总共验证了: win7 x64 ;win8 x86 ;win8 x64 三者的光盘引导文件分别是 bootx64.efi bootia32.efi bootx64.efi 结论:UEFI在光盘上的启动不依赖于操作系统,可认为是无操作系统环境,故 bootx64.efi 是计算机默认引导文件======================================================== 2、移动磁盘介质UEFI启动【已验证】: 普遍的,可以从论坛上看到通过bootx64.efi 启动U盘 结论:UEFI在移动磁盘介质上的启动不依赖于操作系统,可认为是无操作系统环境,故 bootx64.efi 是计算机默认引导文件 ======================================================== 3、本地磁盘介质UEFI启动【已验证】: ::原生ESP分区引导文件分析 我为此安装了微软win8 x64的操作系统,分析ESP分区的全部文件,分别存在: efi\boot\bootx64.efi efi\microsoft\boot\bootmgfw.efi 我们不禁思考:哪个文件测试真正用到的呢?计算机默认启动哪个呢?系统默认启动哪个呢? 那好很简单,我们依次删除他们看看系统能否启动就知道了.... 1、删除 bootmgfw.efi ,保留 bootx64.efi >结果: 选择从本地硬盘启动 系统仍然可以引导进入 选择 Windows Boot Manager 进入失败 2、删除 bootx64.efi ,保留 bootmgfw.efi > 结果: 选择从本地硬盘启动 进入失败 选择 Windows Boot Manager 系统仍然可以引导进入 结论: bootx64.efi 是计算机默认引导文件 bootmgfw.efi 是 Windows默认引导文件 4、bcdboot 和 “Windows Boot Manager ” “ Bootmgfw.efi” “ Bootx64.efi ” 之间的联系 bcdboot 修复系统引导的命令格式: bcdboot 系统位置 /l 语言 例:
复制代码 当我们执行了上述代码后: bcdboot.exe 会修复系统引导,而且会同时修复计算机默认引导和Windows 默认引导,在ESP分区同时出现bootx64.efi和bootmgfw.efi, 并且bootx64.efi是由bootmgfw.efi 改名而来的。与此同时在Boot Menu启动选择菜单那里生成“Windows Boot Manager”, Windows Boot Manager 及其包含的信息是保存在主板上的NVRAM里面的,而不是保存在硬盘上,故删除Windows Boot Manager需要到BIOS设置区删除。 ::这里我们如果通过bcdedit查看bcd文件的话,我们可以发现,bootmgfw.efi 是 Windows默认引导文件。所以我们的结论同原生ESP分区测试的结论一样。 UEFI规范中,关于NVRAM的正解: NVRAM是BIOS ROM中的一段区域,一般定义为64k byte, 现在EFI把所有的变量都存在这里。 结论: bootx64.efi 是计算机默认引导文件 bootmgfw.efi 是 Windows默认引导文件 最后: 写这篇帖子最主要的原因,是能够让那些不是很明白Bootx64.efi和Bootmgfw.efi区别的、或者模糊知道的朋友,清楚了解二者之间的关联以及区别不要再有 Bootx64.efi就是Bootmgfw.efi改名而来的、Bootx64.efi就是Bootmgfw.efi 像这些不正确的说法,以免误导后来的朋友..... 准确的说:“Bootx64.efi 可以是 Bootmgfw.efi,也可以是其他任意有效的efi程序” |
少马石 发表于 2022-1-31 11:09
感谢指导,bing了一下
少马石 发表于 2022-1-31 11:09
感谢指导,bing了一下
dudubird 发表于 2022-11-20 18:44
请教一下各位老师,在uefi+gpt下,能否在Windows的BCD菜单中加入启动项来启动GRUB4DOS for UEFI,如 ...
sunsea 发表于 2022-11-20 18:59
不可以,微软限制。
dudubird 发表于 2022-11-20 19:13
谢谢!那能否通过BCD启动到DOS,再从DOS启动GRUB4DOS呢?
liuzhaoyzz 发表于 2022-1-31 09:19
1、下载g4e的启动文件放到ESP分区\EFI\BOOT\下面,可以替换掉原来的bootx64.efi,前提是你清楚你的windows ...
sunsmile23 发表于 2022-11-21 15:31
我在ESP分区\EFI\BOOT\下面替换过原来的bootx64.efi,也在\EFI\Microsoft\boot\下面替换过原来的bootmfg ...
liuzhaoyzz 发表于 2022-11-25 13:33
2、在\EFI\grub\menu.lst里面建立启动菜单。启动菜单可以从论坛借鉴。
你做了吗?你的菜单是什么样子 ...
少马石 发表于 2022-1-31 11:09
感谢指导,bing了一下
欢迎光临 无忧启动论坛 (http://bbs.c3.wuyou.net/) | Powered by Discuz! X3.3 |