无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 501|回复: 12

[求助] G4D如何引导bootmgr

[复制链接]
发表于 4 天前 | 显示全部楼层 |阅读模式
G4D的menu.lst实例看不太懂
#iftitle only show when command in [] returns true
# set a variable named bootmgr where /bootmgr is found.
iftitle [find --set-root --devices=h /bootmgr && call set bootmgr=%@root^%] load BOOTMGR of Windows VISTA/WIN7/WIN2008 on %bootmgr%
fallback +1
chainloader %bootmgr%/bootmgr
savedefault --wait=2


我的环境是这样的,U盘三分区,头部UD分区有GRLDR;中间是DATA普通数据分区;尾部分区是EFI分区,有bootmgr和BCD菜单,BCD菜单可启动同一分区里的10PE.wim和11PE.wim。

要求GRLDR只加载本U盘的EFI分区里的bootmgr
发表于 4 天前 | 显示全部楼层
不懂,看起来是搜索boogmgr再执行启动的...


二○二五年四月十八日
回复

使用道具 举报

发表于 4 天前 | 显示全部楼层
因为bootmgr 跟 grldr 不同同一个分区,所以需要先确定分区, 然后再chainloader
find --set-root /bootmgr
chainloader /bootmgr

但这样一来,也可能会先找到硬盘上的 /bootmgr
所以可以将u盘上的bootmgr 改名为 bootu,然后
find --set-root /bootu
chainloader /bootu

点评

印象中,一般是另外搞一个特征文件,可以是有功能的 或 无功能的,特定的文件名,然后通过 搜索这个特定的 文件名来执行,比如 coolhome 之类  详情 回复 发表于 4 天前

评分

参与人数 1无忧币 +5 收起 理由
wuxin9712 + 5

查看全部评分

回复

使用道具 举报

发表于 4 天前 | 显示全部楼层
hilsonma 发表于 2025-4-18 15:45
因为bootmgr 跟 grldr 不同同一个分区,所以需要先确定分区, 然后再chainloader
find --set-root /bootmgr ...

印象中,一般是另外搞一个特征文件,可以是有功能的  或 无功能的,特定的文件名,比如 coolhome 之类, 然后通过 搜索这个特定的 文件名来  定义 root,然后执行 bootmgr
回复

使用道具 举报

发表于 4 天前 | 显示全部楼层
只加载 U 盘上的 bootmgr——嗯——这个好像不难。如果要加载硬盘上的 bootmgr,那就有点费事了(主要是得确定硬盘的盘号)。

当 BIOS 从 U 盘启动时,U 盘通常是 (hd0)。既然 bootmgr 在 U 盘上,那就可以直接这样做:

find --set-root /bootmgr
chainloader /bootmgr

这个方法有个问题,就是,当 U 盘被 BIOS 认成软盘 (fd0) 时,将优先找到硬盘上的 bootmgr。

所以,应该找一个更合适的方法。

分析你的具体情况。你是按照固定方式来对 U 盘进行分区、格式化的。因此,U 盘上的各个分区,其分区号是固定不变的。比如说,EFI 分区总是分区号 4,即,逻辑分区的第一分区。这只是举例,你实际的 EFI 分区号也许是 5,6,等,甚至也有可能是主分区,0,1,2,3,取决于你是如何分区、格式化的。只要你 U 盘分区结构确定了,你的 EFI 分区的分区号也就确定了。你可以把它的分区号猜出来。这里假定它就是分区号 5 吧。

root (,5)
chainloader /bootmgr

就是说,不用 find 了,直接把当前盘的分区号 5 作为 root。

好的,我说的是个思路,具体行不行,还得试验一下。

尤其是,当你用 UD 结构时,当前 root 可能是 (ud),这会带来麻烦。【补充】应该不会有麻烦,Changelog_chenall.txt 中有如下说明:

2010-12-15
        1.还原2010-12-10对0000:82A4的改变.
        2.为了方便使用当使用fbinst启动时有如下调整
          boot_drive (bd) 为FB_DRIVE(ud)
          默认root(saved_drive) 为可见分区.

也就是说,针对 ud 启动的情况,从 2010年12月15日开始,当前默认 root 已经调整为可见分区,而不是 ud 分区。

所以,以上所说的方法应该没问题。

点评

他u盘是三分区,不可能被识别为fd吧?  详情 回复 发表于 4 天前

评分

参与人数 1无忧币 +5 收起 理由
wuxin9712 + 5

查看全部评分

回复

使用道具 举报

发表于 4 天前 | 显示全部楼层
不点 发表于 2025-4-18 18:09
只加载 U 盘上的 bootmgr——嗯——这个好像不难。如果要加载硬盘上的 bootmgr,那就有点费事了(主要是得 ...

他u盘是三分区,不可能被识别为fd吧?

点评

识别为 fd0 还是 hd0,跟有几个分区没关系。 假如能够通过设置分区结构来影响 hd0 和 fd0 的识别,那就太容易了,不会有那么多混乱了,也不需要 ud 之类的方案了。 以前大量的用户报告表明,要想让 BIOS 识别  详情 回复 发表于 4 天前
回复

使用道具 举报

发表于 4 天前 | 显示全部楼层
本帖最后由 不点 于 2025-4-18 20:12 编辑
wintoflash 发表于 2025-4-18 18:59
他u盘是三分区,不可能被识别为fd吧?

识别为 fd0 还是 hd0,跟有几个分区没关系。

假如能够通过设置分区结构来影响 hd0 和 fd0 的识别,那就太容易了,不会有那么多混乱了,也不需要 ud 之类的方案了。

以前大量的用户报告表明,要想让 BIOS 识别 U 盘为硬盘,是没有对策、没有办法的。不可能找到一个办法,让所有的 BIOS 都能把 U 盘识别为硬盘。


【补充】为了让您有个直观的了解,这里说一个我亲自遇到的特例。

联想某一型号的台式机,U 盘只要分区表中存在两个项目,启动时就死机,或者干脆跳过 U 盘(不从 U 盘启动)。它只支持单一分区。这是反复测试,证明了的。也就是说,设置为多分区,不仅不能保证识别为硬盘,甚至连软盘也识别不了(干脆拒绝启动了!)。

所以,gmy 的这个多分区方案,其实也不能保证有 100% 的成功率。一般的 ud 方案,也不能保证 100% 的成功率,即使采用单分区也不行。不过,BIOS 终于淘汰了,那些乱七八糟的状况,都成为了历史,我们不必再关心了。



点评

我记得bootmgr不能从fd上启动,所以没必要考虑这种情况。  详情 回复 发表于 4 天前

评分

参与人数 1无忧币 +5 收起 理由
wuxin9712 + 5

查看全部评分

回复

使用道具 举报

发表于 4 天前 | 显示全部楼层
不点 发表于 2025-4-18 19:49
识别为 fd0 还是 hd0,跟有几个分区没关系。

假如能够通过设置分区结构来影响 hd0 和 fd0 的识别,那 ...

我记得bootmgr不能从fd上启动,所以没必要考虑这种情况。

点评

ntldr 都可以从 fd 启动。 bootmgr 应该也可以的。否则,竟然比 ntldr 还差,这就不合理了。 bootmgr 在很多方面都比 ntldr 更强、更好。因此 bootmgr 不太可能不支持 fd。 况且,我们在 grub4dos 中,可以  详情 回复 发表于 4 天前
回复

使用道具 举报

发表于 4 天前 | 显示全部楼层
wintoflash 发表于 2025-4-18 20:38
我记得bootmgr不能从fd上启动,所以没必要考虑这种情况。

ntldr 都可以从 fd 启动。

bootmgr 应该也可以的。否则,竟然比 ntldr 还差,这就不合理了。

bootmgr 在很多方面都比 ntldr 更强、更好。因此 bootmgr 不太可能不支持 fd。

况且,我们在 grub4dos 中,可以把 fd0 map 成 hd0。

grub4dos 的 fd0 和 hd0 没有本质差别,都可以有分区表,都可以有各种分区项目,比如 (fd0,5) 就是一个逻辑分区。

当 主板把 U 盘识别为 fd0 时,如果像您说的那样,bootmgr 无法启动了,那么,bootmgr 的失败率就太高了。而 grub4dos 却没问题。所以,这种可能性不大。退一万步说,即使 bootmgr 失败了,我们也可以用 map 让它成功(就像刚才已经说的那样)。

点评

抱歉记错了。 修正:bootmgr可以从fd上启动,但是不能启动(fdx,y)上的Windows。  详情 回复 发表于 3 天前

评分

参与人数 1无忧币 +5 收起 理由
wuxin9712 + 5

查看全部评分

回复

使用道具 举报

发表于 3 天前 | 显示全部楼层
本帖最后由 liangzr1976 于 2025-4-19 07:42 编辑

两位大元帅讨论的比较深,我只能从应用层面理解一下 G4D及MBR启动

豆包AI: USB-ZIP、USB-flopy 分别识别为 fd、hd的什么?
在计算机系统中,USB - ZIP通常被识别为类似软盘的设备,与 **fd(软盘驱动器)** 有一定的相似性,启动后 U 盘的盘符大多是 A。不过在一些支持 USB - ZIP/USB - HDD 双模式启动的电脑中,根据 BIOS 支持情况不同,也可能显示为 C 盘。
USB - floppy(通常表述为 USB - FDD)是模拟软驱模式,会被识别为fd(软盘驱动器),启动后 U 盘盘符为 A。
而hd通常指硬盘相关设备,USB - ZIP 和 USB - floppy 一般不直接识别为 hd。不过,增强的 USB - ZIP 模式(USB - ZIP+)支持 USB - ZIP/USB - HDD 双模式启动,在这种情况下,它与 hd 有了一定的关联,因为可以模拟硬盘模式启动,可能会被系统像识别硬盘设备一样进行相关操作。但单纯的 USB - ZIP 和 USB - floppy 模式本身主要是与 fd 相关的模拟,与 hd 的直接关联较小。

===============================
之前做过较多的 USB盘  wintogo、WTGA、微PE 方案七 winnt6.x模式之类的,用的主要是legacy模式,好像用的不是 USB-HDD,不知道是否 USB-Zip+,感觉应该是 fd形式吧!而微PE 方案七 winnt6.x模式 支持 USB-HDD、USB-ZIP、USB-FDD三种 子方案。所以一直理解 bootmgr是支持 fd的
回复

使用道具 举报

发表于 3 天前 | 显示全部楼层
本帖最后由 wintoflash 于 2025-4-19 07:51 编辑
不点 发表于 2025-4-18 21:30
ntldr 都可以从 fd 启动。

bootmgr 应该也可以的。否则,竟然比 ntldr 还差,这就不合理了。

抱歉记错了。
修正:bootmgr可以从fd上启动,但是似乎不能启动(fdx,y)「软盘带分区表」上的Windows。

点评

软盘带分区表(解析其中的各个分区卷),这可是 grub4dos 发明的,微软以前是没有的,以后当然也不会承认。因为大家知道, BIOS 和软盘两者都是要废弃的对象。所以,软盘分区上的 Windows,估计是启动不了的。就是说  详情 回复 发表于 3 天前
回复

使用道具 举报

发表于 3 天前 | 显示全部楼层
wintoflash 发表于 2025-4-19 07:47
抱歉记错了。
修正:bootmgr可以从fd上启动,但是似乎不能启动(fdx,y)「软盘带分区表」上的Windows。

软盘带分区表(解析其中的各个分区卷),这可是 grub4dos 发明的,微软以前是没有的,以后当然也不会承认。因为大家知道, BIOS 和软盘两者都是要废弃的对象。所以,软盘分区上的 Windows,估计是启动不了的。就是说,试图直接在软盘上启动 Windows,启动不了,属于正常现象。若是用 map 把软盘仿真为硬盘,情况发生变化,或许就能够启动了。

很多情况,用户使用 bootmgr,不是用来启动 Windows,而是把 bootmgr 当作一个 bootloader 来用,就是,bootmgr 作为 “第二启动”。这种情况,bootmgr 能在软盘上启动和工作,已经达到了用户的目的。

还有一种情况,用户启动 bootmgr,目的是启动 vhd,wim,或者是内存系统,或者 ISO 之类的 PE。此时,即使 U 盘是 fd0 估计也没啥影响。如果实在有影响的话,可以考虑动用 map 这个终极武器,即,先把软盘仿真为硬盘。

回复

使用道具 举报

发表于 3 天前 | 显示全部楼层
学习了!!!
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2025-4-22 10:02

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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