无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
楼主: 2011yaya2007777
打印 上一主题 下一主题

[原创] GRUB4DOS for UEFI

    [复制链接]
151#
发表于 2021-11-16 20:28:34 | 显示全部楼层
G4E的热键测试了一下,在我的台式机上暂时还是不能呈现定义的热键,按热键也无效,但自动编号的热键、系统C\E\B热键均有效。
回复

使用道具 举报

152#
发表于 2021-11-16 21:56:00 | 显示全部楼层
用笔记本测试一切正常,g4e-g2/xorboot-g4e均是正常的。
回复

使用道具 举报

153#
发表于 2024-1-28 22:52:13 | 显示全部楼层
本帖最后由 hhh333 于 2024-1-29 00:13 编辑

新版,CD的标志改了?0x9f也是光盘

以前不是0xA0:0xFF才是光盘吗?

不支持诸如:
if %?_BOOT%==(cd)
if %?_BOOT%==(pd)
if %?_BOOT%==(ud)

这类用法了吗?
回复

使用道具 举报

154#
发表于 2024-1-29 12:53:07 | 显示全部楼层
2011yaya2007777 发表于 2024-1-29 09:44
一般概念,0xA0:0xFF是光盘,这是map一个光盘时,grub内部分配的驱动器号。
但是VM虚拟机原生启动光盘, ...

谢谢解答,终于搞清了
回复

使用道具 举报

155#
发表于 2024-2-6 21:09:50 | 显示全部楼层
本帖最后由 hhh333 于 2024-2-6 23:01 编辑
2011yaya2007777 发表于 2024-1-29 09:44
一般概念,0xA0:0xFF是光盘,这是map一个光盘时,grub内部分配的驱动器号。
但是VM虚拟机原生启动光盘, ...

if %?_BOOT% >= 0x9f
这用法不行啊,%?_BOOT%是带括号的
if比较必须要双目运算符?<、>、=不行,必须要<=、>=、==
回复

使用道具 举报

156#
发表于 2024-2-7 16:43:37 | 显示全部楼层
本帖最后由 hhh333 于 2024-2-7 16:44 编辑

判断是不是从光盘启动,是不是只要if %?_BOOT%<=(0xff) echo boot from cd
另外想问一下,只写“<”或“>”要怎么写?
回复

使用道具 举报

157#
发表于 2024-2-8 09:28:07 | 显示全部楼层
本帖最后由 hhh333 于 2024-2-8 09:39 编辑

明确几个点:
1、if的比较是字符串比较,即是按字母编码从左到右比较;
2、%?_BOOT%、%@root%都是带括号的标志,得到的结果可能有UD启动为(ud)、网络启动为(pd)、硬盘启动为(hdx,x)如果(hd0,1) (hd1,1)等、RAM内存模拟盘为(rd)不大清楚这个盘有不有编号譬如rd0/rd1/rd2,只有光盘启动标志为(0x9f)~(0xff);
如果是这样那就简单了<=(0xff)都是光盘
回复

使用道具 举报

158#
发表于 2024-2-8 09:38:09 | 显示全部楼层
我觉得既然?_BOOT/@root表示启动设备就应该统一格式,CD启动时就是(cd)而不应该其他是ud/hd/rd/pd只有光盘才是0x16进制形式。
回复

使用道具 举报

159#
发表于 2024-2-8 09:42:46 | 显示全部楼层
还有一个问题就是?_BOOT和@root是不是有区别?是不是前者表示初始启动设备,后者表示当前启动设备,即开始是相同的,但如果用root命令改变了启动设备,只有@root更新,而?_BOOT不更新。
回复

使用道具 举报

160#
发表于 2024-3-20 18:19:14 | 显示全部楼层
本帖最后由 hhh333 于 2024-3-20 18:28 编辑

想请教一个问题,以前我是用grldr.mbr来传统BIOS启动PE,但这个总是从启动盘的根下找文件,能不能从了目录中找文件?我如果要自己编译这个grldr.mbr要怎么做

点评

你可以使用 wee,来取代 grldr.mbr。在 wee 的菜单中,你可以指定查找的位置。这样,就可以避免去修改和编译 grldr.mbr 了。 要编译 grldr.mbr,让它支持从子目录启动 grldr,这决不像看起来那么容易。是超高难度  详情 回复 发表于 2024-3-21 04:38
回复

使用道具 举报

161#
发表于 2024-3-21 10:58:09 | 显示全部楼层
不点 发表于 2024-3-21 04:38
你可以使用 wee,来取代 grldr.mbr。在 wee 的菜单中,你可以指定查找的位置。这样,就可以避免去修改和 ...

哦,感谢解答,我这技术肯定搞不定,我看下wee
回复

使用道具 举报

162#
发表于 2024-3-22 09:10:30 | 显示全部楼层
本帖最后由 hhh333 于 2024-4-7 21:38 编辑
2011yaya2007777 发表于 2024-3-20 20:31
目前只能从根目录查找。你可以在grldrstart.S里面更改,然后编译grub4dos。grldr在根目录很烦吗?

哈哈,grldr不烦。主要是用这个文件来装载bootmgr的,每一个PE对应一个mgr。而这个mgr是放在\BOOT下的。
譬如,我的PE安装到硬盘,其中一种方式就是改boot.ini的:
  1. [BOOT loader]
  2. timeout=10
  3. default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
  4. [operating systems]
  5. multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP/2003 (Boot to C:\Windows)" /noexecute=optin /fastdetect
  6. C:\BOOT\H3_AVL06.BIN="H3 Win10 PE 64"
  7. C:\BOOT\H3_AVL10.BIN="H3 Win10 PE"
  8. C:\BOOT\H3_AVL16.BIN="H3 Win8.1 PE 64"
  9. C:\BOOT\H3_AVL81.BIN="H3 Win8.1 PE"
  10. C:\BOOT\H3_AVL03.BIN="H3 Win2003 PE"
  11. C:\BOOT\H3_AVLW7.BIN="H3 Win7 PE"
  12. C:\BOOT\H3_AVLW8.BIN="H3 Win8 PE"
  13. C:\BOOT\H3_AVL64.BIN="H3 Win8 PE 64"
  14. C:\BOOT\H3_AVLIN.BIN="H3 Win2003 PE ExtTools-Built-In"
  15. C:\BOOT\H3_AVLRM.BIN="H3 Win2003 PE Non-RAM-Mode"
  16. C:\BOOT\H3_AVLNV.BIN="H3 Win2003 PE Native_Mode"
  17. C:\grldr="H3 Grub4DOS for NT5"
复制代码
对应关系是这样的:
  1. 硬盘启动器(grldr.mbr改名而来)-->指向的PE启动器---->对应的BCD-->对应的WIM------>对应的PE
  2.     H3_AVLW7.BIN------------------------>H3_MGRW7.BIN------>BW7-------->H3_7PE.WIM----->Win7PE
  3.     H3_AVLW8.BIN------------------------>H3_MGRW8.BIN------>BW8-------->H3_8PE.WIM----->Win8 PE
  4.     H3_AVL81.BIN------------------------->H3_MGR81.BIN------>B81---------->H3_81PE.WIM--->Win81 PE
  5.     H3_AVL10.BIN------------------------->H3_MGR10.BIN------>B10---------->H3_10PE.WIM--->Win10 PE
  6.     H3_AVL64.BIN------------------------->H3_MGR64.BIN------>B64---------->H3_864.WIM----->Win8 64 PE
  7.     H3_AVL16.BIN------------------------->H3_MGR16.BIN------>B16---------->H3_8164.WIM--->Win81 64 PE
  8.     H3_AVL06.BIN------------------------->H3_MGR06.BIN------>B06---------->H3_1064.WIM--->Win10 64 PE
  9.     H3_AVL11.BIN------------------------->H3_MGR11.BIN------>B11---------->H3_1164.WIM--->Win11 64 PE
复制代码


这样我就必须把H3_MGRxx.BIN必须复制一份放根目录下,显得有点多,当然也可以做成统一一个BCD,把这些都包含进去,但这需要二次选择不是?
回复

使用道具 举报

163#
发表于 2024-4-15 18:49:06 | 显示全部楼层
不才 发表于 2024-4-8 21:57
求教,在 EFIx64 模式下如何加载运行Memtest86+程序?
问题已解决!

EFI下分64与32位,互不通用的,常识
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-2 09:34

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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