无忧启动论坛

标题: U盘的BCD如何加载G4E? [打印本页]

作者: gmy    时间: 2025-3-25 11:02
标题: U盘的BCD如何加载G4E?
本帖最后由 gmy 于 2025-3-25 11:25 编辑

如题,这是个反向操作,BCD首先加载,再加载G4E
我的BCD实例如下,用于U盘启动,用BCDICE添加了几次没成功,显示7b错误,不知如何正确添加?
另外,G4E除了BOOTX64.EFI和menu.lst文件是必须的,还有哪些文件还是必须的?

我的真正目的是想进入本地硬盘Windows


BOOTX64.EFI文件更名为g4e.efi



bcd.rar (3.69 KB, 下载次数: 6)
附件中的 BCD 仅包含11PE和10PE两个选项,请大家帮我添加第三个选择Windows(加载g4e.efi)




作者: wintoflash    时间: 2025-3-25 11:14
目前做不到。微软不支持。
作者: gmy    时间: 2025-3-25 11:18
wintoflash 发表于 2025-3-25 11:14
目前做不到。微软不支持。

仿sdi+wim或vhd可行吗?
作者: wintoflash    时间: 2025-3-25 11:22
gmy 发表于 2025-3-25 11:18
仿sdi+wim或vhd可行吗?

我太笨看不懂
作者: gmy    时间: 2025-3-25 11:28
wintoflash 发表于 2025-3-25 11:22
我太笨看不懂

我的目的是想进入本地Windows,无论怎么进,曲线救国,能进就行,有病乱投医。
作者: wintoflash    时间: 2025-3-25 11:30
gmy 发表于 2025-3-25 11:28
我的目的是想进入本地Windows,无论怎么进,曲线救国,能进就行,有病乱投医。

那你应该改标题。两者的难度是完全不一样的。
你说的启动本地Windows,指的是搜索并启动,还是指定某个磁盘上的Windows。这些都要表达清楚。
作者: szwp    时间: 2025-3-25 11:31
想多了
作者: wintoflash    时间: 2025-3-25 11:52
szwp 发表于 2025-3-25 11:31
想多了

请问locate可以用于Windows系统(非VHD)吗?
作者: guong    时间: 2025-3-25 12:07
来了解下
作者: chen463    时间: 2025-3-25 13:10
BOOTICE打开当前系统BCD,不就有答案,何须向外自找烦恼
作者: szwp    时间: 2025-3-25 13:12
wintoflash 发表于 2025-3-25 11:52
请问locate可以用于Windows系统(非VHD)吗?

可以
作者: gmy    时间: 2025-3-25 13:47
chen463 发表于 2025-3-25 13:10
BOOTICE打开当前系统BCD,不就有答案,何须向外自找烦恼

不通用。
作者: wintoflash    时间: 2025-3-25 14:57
本帖最后由 wintoflash 于 2025-3-25 15:02 编辑
gmy 发表于 2025-3-25 13:47
不通用。

你直接在帖子一开头说明自己需要通过BCD实现搜索并启动Windows的功能就好了,因为论坛里面已经有相应的帖子了。
这种功能只靠微软官方引导就能实现,不需要g4d/g4e。

http://bbs.wuyou.net/forum.php?mod=viewthread&tid=426000
作者: szwp    时间: 2025-3-25 15:06
wintoflash 发表于 2025-3-25 14:57
你直接在帖子一开头说明自己需要通过BCD实现搜索并启动Windows的功能就好了,因为论坛里面已经有相应的帖 ...

可以根据不同系统的唯一文件来定位不同系统分区启动。

QQ20250325-150445.png (1.24 KB, 下载次数: 4)

QQ20250325-150445.png

作者: hilsonma    时间: 2025-3-25 15:14
根据以上几楼的提示,uefi的bcd不能引导g4e,但可以使用locate 来引导硬盘系统 bcd.7z (3.55 KB, 下载次数: 27)

作者: my9823    时间: 2025-3-25 17:07
本帖最后由 my9823 于 2025-3-25 17:10 编辑

试试bcdedit的命令行呢?记得以前修改ventoy的wimboot.img中的bcd里面关于分辨率的那一条,用bootice怎么修改都不行,用命令行修改成功了。建议尝试一下,不知道行不行?
作者: hzyry2046    时间: 2025-3-25 17:19
本帖最后由 hzyry2046 于 2025-3-25 17:21 编辑

不可行,efi版的WINDOWS Boot Manager只能运行winload/winresume/memtest,不能再加载其他的非微软efi
作者: chen463    时间: 2025-3-25 17:22
本帖最后由 chen463 于 2025-3-25 18:03 编辑

U盘启动要UEFI引导WINDOWS,这是多年来的问题。G4E
1.硬盘号法-缺点是无法确认在哪一盘号。
title 启动存在的硬盘(hd1)\n chainloader (hd1)
chainloader (hd1)


2.文件名法-把bootmgfwold.efi更名(任意一个文件名-gmy.efi皆可)来FIND定位,但是大众化得想办法放入此文件。这是最实在的方式-UEFI和Legacy BIOS皆可。
title 启动硬盘windows系统(find 方案2)\n find搜索到有bootmgfwold.efi[
bootx64.efi]的第一个硬盘启动

find --set-root --devices=h /efi/microsoft/boot/bootmgfwold.efi
chainloader /efi/microsoft/boot/bootmgfw.efi


3.BCD法
bootmgfw.efi有可能在任一多U盘或硬盘中,这是最差的方式,BCD还须设定分区定位。


.....
bootx64.efi 是计算机默认引导文件
bootmgfw.efi Windows默认引导文件
bootmgfw.efi 是优先启动第一顺位,其次是bootx64.efi>BCD





作者: 小灰兔    时间: 2025-3-25 18:34
来了解下
作者: szwp    时间: 2025-3-25 18:49
hilsonma 发表于 2025-3-25 15:14
根据以上几楼的提示,uefi的bcd不能引导g4e,但可以使用locate 来引导硬盘系统

ok好像搞成功用U盘启动硬盘的uefi  xp
作者: gmy    时间: 2025-3-25 19:05
hilsonma 发表于 2025-3-25 15:14
根据以上几楼的提示,uefi的bcd不能引导g4e,但可以使用locate 来引导硬盘系统

测了几台,成功了,简单、实用。悄悄问一句,用的BOOTICE命令行?。再挑战一下,添加两个选项:重启;关机,能否实现?
作者: hilsonma    时间: 2025-3-25 19:28
szwp 发表于 2025-3-25 18:49
ok好像搞成功用U盘启动硬盘的uefi  xp

是的。我在回贴给gmy前也做过这样的尝试,成功了。
就是把修正bcc的那2个设备partition=c: 这样的参数改成你说的参数 locate=\Windows 之类
作者: hilsonma    时间: 2025-3-25 19:32
gmy 发表于 2025-3-25 19:05
测了几台,成功了,简单、实用。悄悄问一句,用的BOOTICE命令行?。再挑战一下,添加两个选项:重启;关 ...

用的是bcdedit. 把device 和 osdevice 设置为 locate=\Windows 这样的内容,也可参考14楼szwp 的提示,设置更精准的内容。

重启和关机 uefi的bcd不支持。
作者: 2011wolfsina    时间: 2025-3-25 20:57
bcd能够用locate搜索加载vhd或wim吗?
作者: gmy    时间: 2025-3-25 21:09
本帖最后由 gmy 于 2025-3-26 07:55 编辑
hilsonma 发表于 2025-3-25 19:28
是的。我在回贴给gmy前也做过这样的尝试,成功了。
就是把修正bcc的那2个设备partition=c: 这样的参数改 ...

刚刚又测了一台,UEFI模式下U盘启动BCD菜单进入Windows,无法进入Legacy模式安装的32位Win7。


是否可以这样总结:对于支持新旧两种模式U盘都能启动的电脑,不能交叉进入Windows,分两种情况:
1、Legacy模式启动的U盘,G4D菜单无法进入UEFI模式的Windows
2、UEFI模式启动的U盘,BCD菜单无法进入Legacy模式的Windows

作者: hilsonma    时间: 2025-3-26 07:59
本帖最后由 hilsonma 于 2025-3-26 08:03 编辑
gmy 发表于 2025-3-25 21:09
刚刚又测了一台,UEFI模式下U盘启动BCD菜单进入Windows,无法进入Legacy模式安装的32位Win7。

UEFI 和 Legacy 用的不是同一个BCD,不知你是否搞清楚了起作用的是哪一个BCD.
如果想UEFI 和 Legacy 使用同一个BCD, 必须使用魔改  bootmgr
只要起作用的BCD修改到位,都是可以成功的。

正常情况下,\EFI\Boot\bootx64.efi 使用的BCD是\EFI\Boot\BCD 或 \EFI\Microsoft\Boot\BCD
bootmgr使用的BCD是\Boot\BCD
可以魔改bootmgr(使用bmplus按自己要求定制bootmgr),这样bootmgr可以使用 \EFI\Boot\BCD,从而达成UEFI/Legacy使用同一个BCD
没有魔改的前提下,你要分别修改\EFI\Boot\BCD 和 \Boot\BCD
魔改后,只要一个BCD (\EFI\Boot\BCD)就可以了
作者: szwp    时间: 2025-3-26 08:03
hilsonma 发表于 2025-3-25 19:32
用的是bcdedit. 把device 和 osdevice 设置为 locate=\Windows 这样的内容,也可参考14楼szwp 的提示,设 ...

用BCD来重启不是绝对不可能,只是弯绕得有点远
作者: hilsonma    时间: 2025-3-26 08:20
gmy 发表于 2025-3-25 21:09
刚刚又测了一台,UEFI模式下U盘启动BCD菜单进入Windows,无法进入Legacy模式安装的32位Win7。

32位win7不能使用64位的efi来启动,需要使用32位的efi
32位的efi 只能用在32位的设备,64位的设备不能用32位的efi只能用64位的efi.
现在的电脑基本是64位的,只有极少数平板是32位的。
所以,64位的电脑uef启动只能用64位的系统,64位的电脑legacy启动则可以是64位或32位的系统。
作者: wintoflash    时间: 2025-3-26 08:43
szwp 发表于 2025-3-26 08:03
用BCD来重启不是绝对不可能,只是弯绕得有点远

uefi下如何实现?
利用blacklotus漏洞?
作者: szwp    时间: 2025-3-26 09:53
wintoflash 发表于 2025-3-26 08:43
uefi下如何实现?
利用blacklotus漏洞?

可以用BCD传参给PE或系统,进去后再重启或关机,只是这条曲线不知道有没人高兴去玩了。
还可以根据参数决定是否去一次性启动G4E序列。
作者: wintoflash    时间: 2025-3-26 10:01
szwp 发表于 2025-3-26 09:53
可以用BCD传参给PE或系统,进去后再重启或关机,只是这条曲线不知道有没人高兴去玩了。
还可以根据参数 ...

这跟metro启动菜单差不多啊,其实写个native程序就能做到,不需要pe带桌面,但是太脱裤子放屁了。
作者: szwp    时间: 2025-3-26 10:05
wintoflash 发表于 2025-3-26 10:01
这跟metro启动菜单差不多啊,其实写个native程序就能做到,不需要pe带桌面,但是太脱裤子放屁了。

有喜欢曲线的,那就绕吧。
作者: chen463    时间: 2025-3-27 09:38
gmy 发表于 2025-3-25 13:47
不通用。

换位思考,直接使用reboot不就是全通用配备windows
作者: mygamexxx    时间: 2025-3-27 13:57
https://www.cnblogs.com/paul011/p/10437686.html

为了保证可迁移性,device和osdevice的路径盘符使用[locate]来代替固定[c:]盘符】否则迁移磁盘时,会蓝屏。
· 可使用Visual BCD Editor
· 可使用EasyBCD
·《向引导菜单添加本机引导的虚拟硬盘》
            http://technet.microsoft.com/zh-cn/library/dd799299(v=ws.10).aspx
    1.复制 Windows 7 安装的现有引导项目。然后修改此副本以便用作 VHD 引导项目。在命令提示符下,键入:
            bcdedit /copy {default} /d "vhd boot (locate)"
    2.BCDedit 命令成功完成后,它将在“命令提示符”窗口中返回 {GUID} 作为输出。
            在先前命令的命令提示符输出中找到 {GUID}。复制在以下步骤中使用的 GUID,包括大括号。
            对 VHD 引导项目设置 device 和 osdevice 选项。在命令提示符下,键入:
            bcdedit /set {guid} device vhd=[locate]\windows7.vhd
            bcdedit /set {guid} osdevice vhd=[locate]\windows7.vhd
    3.将 VHD 的引导项目设置为默认引导项目。计算机重新启动时,引导菜单将显示计算机上的所有 Windows 安装并将在操作系统选择递减计数完成后引导至 VHD。在命令提示符下,键入:
            bcdedit /default {guid}
    4.一些基于 x86 的系统需要使用针对内核的引导配置选项,以便检测到某些硬件信息并成功地从 VHD 进行本机引导。在命令提示符下,键入:
            bcdedit /set {guid} detecthal on

作者: szwp    时间: 2025-3-27 14:53
多硬盘多系统要确定引导上次还是默认需要写更多代码
作者: mygamexxx    时间: 7 天前
hilsonma 发表于 2025-3-25 19:32
用的是bcdedit. 把device 和 osdevice 设置为 locate=\Windows 这样的内容,也可参考14楼szwp 的提示,设 ...

请教:是不是将不同的\windows改名如\win101,然后用locate=\win101?
作者: hilsonma    时间: 7 天前
mygamexxx 发表于 2025-3-28 11:26
请教:是不是将不同的\windows改名如\win101,然后用locate=\win101?

不要轻易将已安装的系统的文件夹改名,容易出错。
如果一台电脑里不止一个windows, 文件夹都是\Windows,你就看这文件夹里有什么是唯一的,跟别的不相同的,用它来locate定位
如果你能改名,那不如添加文件,比如将 \Windows\Boot\EFI\bootmgfw.efi 复制一份为 boot01.efi ,然后 locate=\Windows\Boot\EFI\boot01.efi,第二个windows则 boot02.efi 以此类推
作者: mygamexxx    时间: 7 天前
hilsonma 发表于 2025-3-28 15:35
不要轻易将已安装的系统的文件夹改名,容易出错。
如果一台电脑里不止一个windows, 文件夹都是\Windows ...

明白了,谢谢!




欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/) Powered by Discuz! X3.3