无忧启动论坛

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

[原创] GRUB4DOS for UEFI

    [复制链接]
91#
发表于 2021-5-22 12:27:57 | 显示全部楼层
本帖最后由 hhh333 于 2021-5-22 12:34 编辑
2011yaya2007777 发表于 2021-5-22 11:53
command_path 默认是 (bd)/efi/grub/
定义了 command --set-path=()/EFI/grub/ext,则 command_path 是  ...

老大,现在这个表现形式的效果是达到了,但是,我前面已经说了,装载hotkey或hotkey.mod也没什么问题,现在主要的问题是:
只要运行了hotkey,在title之前必须要执行一下root ()/EFI/grub或者root ()/EFI/grub/ext,即把root改到不是根的位置,否则一执行到title就会死机
我再测下g4d

点评

我这有 两种 死机的 情况,你的 加 root 方法 ,也不好使 见前几楼的 图 ,hhh333 你的 bios 开兼容模式 了吗  详情 回复 发表于 2021-5-22 14:19
回复

使用道具 举报

92#
发表于 2021-5-22 13:03:25 | 显示全部楼层
本帖最后由 hhh333 于 2021-5-22 13:06 编辑
2011yaya2007777 发表于 2021-5-22 13:00
没有必要。你把子菜单里的hotkey,修改为/efi/grub/ext/hotkry就可以了。我这里测试过了。

为了避免不必要的错误,我现在是用一个菜单menu.lst来测试的 menu.7z (1.33 KB, 下载次数: 21)
回复

使用道具 举报

93#
发表于 2021-5-22 13:20:29 | 显示全部楼层
2011yaya2007777 发表于 2021-5-22 13:00
没有必要。你把子菜单里的hotkey,修改为/efi/grub/ext/hotkry就可以了。我这里测试过了。

G4D没有g4e像我描述的问题,完全成功
回复

使用道具 举报

94#
发表于 2021-5-22 16:09:15 | 显示全部楼层
2011whp 发表于 2021-5-22 14:19
我这有 两种 死机的 情况,你的 加 root 方法 ,也不好使

见前几楼的 图  ,hhh333 你的 bio ...

我的是VM虚拟机ISO文件光盘启动也死,G4D哪么玩也不死
回复

使用道具 举报

95#
发表于 2021-5-22 22:49:43 | 显示全部楼层
2011yaya2007777 发表于 2021-5-22 19:08
测试外部命令死机的原因找到了。
为了同时测试g4e和g4d,在根目录下放置了grldr和g4d的hotkey,在/efi/gru ...

还是没找到,我们不是这么玩的。G4D的放在BOOT/GRUB/EXT下,G4E放在/EFI/gurb/ext下。
回复

使用道具 举报

96#
发表于 2021-5-23 06:45:46 | 显示全部楼层
2011yaya2007777 发表于 2021-5-22 19:08
测试外部命令死机的原因找到了。
为了同时测试g4e和g4d,在根目录下放置了grldr和g4d的hotkey,在/efi/gru ...

如果把title全部去掉,不会死机,直接进命令行,再运行hotkey,只出现用法说明,没有安装的信息,说明hotkey已经安装了,这也说明安装hotkey后,title语句引起了死机,两者冲突了
回复

使用道具 举报

97#
发表于 2021-5-23 07:18:42 | 显示全部楼层
本帖最后由 hhh333 于 2021-5-23 07:33 编辑

哈哈,清晨起来就作试验,终于知道冲突在什么地方了,这是脚本
  1. terminal console
  2. debug off
  3. timeout 30

  4. #设置第一项为默认值
  5. graphicsmode -1 1024
  6. font /BOOT/GRUB/UNIFONT.HEX
  7. #splashimage /BOOT/GRUB/BACK.BMP.GZ
  8. set EFIEXT=/EFI/grub/ext
  9. command --set-path=()/EFI/grub/ext

  10. #字距与行距
  11. terminal --font-spacing=0:3

  12. #设置菜单框
  13. setmenu --box x=16 w=90 y=5 h=28 l=0 --lang=zh --ver-off

  14. #判断32或64位
  15. calc *0x8272&0xff > nul ;; set arch=%@retval%
  16. if "%arch%"=="64" && set IA=x64 ! set IA=ia32 && set arch=PE

  17. #启用热键
  18. ()/EFI/grub/ext/hotkey
  19. setmenu --hotkey-color=0xffff
  20. #root ()/EFI/grub
  21. commandline

  22. setmenu --auto-num-on --string=32=3=0xffff00="Grub4EFI CD启动菜单" --string=50=-6=0x00FF33="date&time"

  23. title 启动 Win 8/8.1/10 PE
  24. chainloader /EFI/boot/shell%IA%.efi -delay 0 -nomap

  25. title 启动 Sli^taz Linux 系统
  26. kernel /EFI/boot/bzboot%IA%.efi rw root=/dev/null vga=normal lang=zh_CN kmap=us tz=Asia/Shanghai autologin
  27. initrd /BOOT/rootfs.gz

  28. title [X]转 Xorboot 启动
  29. chainloader /EFI/boot/xorboot%IA%.efi

  30. title [G]转 Grub2 启动
  31. chainloader /efi/boot/g2boot%IA%.efi

  32. title [R]重启
  33. reboot

  34. title [S]关机
  35. halt
复制代码

很有意思,只要不加载背景图片,hotkey就不与title冲突。中途进命令行,可以检验hotkey是不是安装了,这个时候也没到死机的时候,可以随便看。按ESC退出命令行。
试验了如下几种情况:
1、不加字体、背景、不进图形模式:没有问题,热键也有效,但不能按指定颜色显示
2、进图形模式,加字体,不加背景:没有问题,热键也有效,且按指定颜色显示
3、进图形模式,加字体,加背景:死机
---------------------------------
4、又把图片改成JPG格式:一切正常

说明是与GZ压缩的BMP图片冲突





回复

使用道具 举报

98#
发表于 2021-5-24 07:38:43 | 显示全部楼层
hhh333 发表于 2021-5-23 07:18
哈哈,清晨起来就作试验,终于知道冲突在什么地方了,这是脚本

很有意思,只要不加载背景图片,hotkey就 ...

为了避免冲突我把背景图片全换成JPG了,测试一切正常
回复

使用道具 举报

99#
发表于 2021-5-24 07:39:08 | 显示全部楼层
hhh333 发表于 2021-5-23 07:18
哈哈,清晨起来就作试验,终于知道冲突在什么地方了,这是脚本

很有意思,只要不加载背景图片,hotkey就 ...

为了避免冲突我把背景图片全换成JPG了,测试一切正常
回复

使用道具 举报

100#
发表于 2021-5-25 09:37:30 | 显示全部楼层
yaya,可以发布新版了吗?
回复

使用道具 举报

101#
发表于 2021-5-25 19:35:43 | 显示全部楼层
本帖最后由 hhh333 于 2021-5-25 19:38 编辑

我上面提到的hotkey与GZ压缩BMP格式背景图片相冲突的问题解决没有。记得以前G4D中的hotkey在我这里也不能用,后面一次才解决的,不知是不是这个冲突问题,是的话应该就有思路
回复

使用道具 举报

102#
发表于 2021-5-25 20:50:35 | 显示全部楼层
2011yaya2007777 发表于 2021-5-25 20:18
不知道为什么这个gz压缩的bmp与热键冲突。换其他的没有这个现象。

是不是解压以后文件有点大,BMP本来就大些
回复

使用道具 举报

103#
发表于 2021-5-25 20:57:35 | 显示全部楼层
2011yaya2007777 发表于 2021-5-25 20:18
不知道为什么这个gz压缩的bmp与热键冲突。换其他的没有这个现象。

我刚才用原文件不压缩的BMP可以通过,解压过程有问题?
回复

使用道具 举报

104#
发表于 2021-5-25 21:47:40 | 显示全部楼层
2011yaya2007777 发表于 2021-5-25 21:37
可能是。也许是压缩软件的问题。或许是版本问题?使用jpg格式挺好,体积小,不用压缩。

最先的G4D不支持JPG,后来支持了也没改,沿用至今,现在改JPG占空间更小
回复

使用道具 举报

105#
发表于 2021-5-25 21:49:43 | 显示全部楼层
2011yaya2007777 发表于 2021-5-25 21:37
可能是。也许是压缩软件的问题。或许是版本问题?使用jpg格式挺好,体积小,不用压缩。

那请重新发布一下支持新版hotkey的g4e和g4d吧
回复

使用道具 举报

106#
发表于 2021-5-29 06:07:11 | 显示全部楼层
本帖最后由 hhh333 于 2021-5-29 06:27 编辑
2011yaya2007777 发表于 2021-5-25 21:57
还有点小改动,就快完了。

这个hotkey是不是也有32位64位之分,现在32位中黑屏来不起,如果是mod性质应该有32位和64位的区别

刚才又试了其他外部命令,在32位下都黑屏
回复

使用道具 举报

107#
发表于 2021-5-29 07:32:07 | 显示全部楼层
2011yaya2007777 发表于 2021-5-29 07:21
所有的外部命令目前都是64位的。

能编译32位的吗?统一放ext32
回复

使用道具 举报

108#
发表于 2021-5-29 10:43:38 | 显示全部楼层
2011yaya2007777 发表于 2021-5-29 07:21
所有的外部命令目前都是64位的。

能不能像DOS一样用command --set-path=a;b;c形式给外部命令或批处理设搜索路径?
回复

使用道具 举报

109#
发表于 2021-6-2 10:02:15 | 显示全部楼层
2011yaya2007777 发表于 2021-6-1 20:25
32位efi,就是个鸡肋,食之无味,弃之可惜。没有几个人真真使用32位真实机。大部分是在搞测试,研究,或者 ...

那确实,现在有强迫症,觉得没32位总不完整不完美的样
回复

使用道具 举报

110#
发表于 2021-6-4 11:03:03 | 显示全部楼层
32位外置的编译搞稔了没有
回复

使用道具 举报

111#
发表于 2021-6-17 18:59:33 | 显示全部楼层
弄不弄32位版的外部命令的?如果不弄其他的,最好把hotkey弄一下。
回复

使用道具 举报

112#
发表于 2021-7-23 12:28:15 | 显示全部楼层
大家不要忘了bootmgfw.efi也可以启动WIM的,ntloader最终也靠这个
回复

使用道具 举报

113#
发表于 2021-9-6 16:41:51 | 显示全部楼层
2011yaya2007777 发表于 2021-9-6 10:42
依据 chenall 的 NTBOOT 启动机理,采用了 wintoflash 在  ntloader 中 修改 BCD 的代码,作为练手,
在 G ...

意思这个会调用NTBOOT来搞事?我以为是内置的呢。应该明确调用吧。启动win是啥意思?
回复

使用道具 举报

114#
发表于 2021-9-7 15:51:54 来自手机 | 显示全部楼层
最好能明文调用,保持外置调用风格一玫
回复

使用道具 举报

115#
发表于 2021-10-25 18:45:44 | 显示全部楼层
哈哈,发现一个问题:hotkey在硬盘启动时没有作用,不能显示热键。目前是0908版,EFI从硬盘的NTFS分区启动。
回复

使用道具 举报

116#
发表于 2021-10-25 19:30:31 | 显示全部楼层
本帖最后由 hhh333 于 2021-10-25 19:33 编辑
hhh333 发表于 2021-10-25 18:45
哈哈,发现一个问题:hotkey在硬盘启动时没有作用,不能显示热键。目前是0908版,EFI从硬盘的NTFS分区启动 ...

通过回溯,0728的版本的hotkey是正常的,0908版使用0728的hotkey也正常。一个是9kb一个是13kb,9kb那个光盘启动时正常,硬盘或U盘启动时不正常。一直没测试U盘和硬盘启动,原来不正常有好几版了。两个版本体积怎么相差这么远?
回复

使用道具 举报

117#
发表于 2021-10-25 21:10:06 | 显示全部楼层
建议hotkey功能能够内置,用外置很不确实:1、用728的hotkey正常,而后续版本不正常;2、用728的如果不是一启也不正常,譬如rfeind/xorboot等转G4E,hotkey失效全部原字符显示;3.最根本的是菜单显示表现应该是G4E的基本核心功能,外置不太合适。
回复

使用道具 举报

118#
发表于 2021-10-26 11:24:12 | 显示全部楼层
2011whp 发表于 2021-10-26 11:20
2021-06-02 (a1ive)
  支持嵌入字库、模块(.mod文件)。
  mkimage.exe -d 目录 -p /efi/grub -o BOOTX6 ...

集成进去以后菜单中还要不要insmod,应该不要吧
回复

使用道具 举报

119#
发表于 2021-10-26 11:32:55 | 显示全部楼层
2011whp 发表于 2021-10-26 11:20
2021-06-02 (a1ive)
  支持嵌入字库、模块(.mod文件)。
  mkimage.exe -d 目录 -p /efi/grub -o BOOTX6 ...

mod模块我从哪里得到呢,譬如我要728的hotkey,如何弄?
回复

使用道具 举报

120#
发表于 2021-10-26 16:08:51 | 显示全部楼层
2011whp 发表于 2021-10-26 12:00
hotkey 本身是 模块,  集成 后,不用  insmod  ( 要集成 多个 外部命令的 话,要用 fbinst 打包)

使 ...

加也加入了,bootx64.efi体积增加了,但用不了。还是要外置才能用。

这个是打包命令hotkey已经拷贝到命令文件所在目录

  1. @echo off
  2. rem mkimage.exe -d 64位内核img所在目录 -p /efi/grub(初始菜单查找目录) -o BOOTX64.EFI(目标文件) -O x86_64-efi(目标类型为固定的64位标识) -c 嵌入菜单 -f 嵌入字库 -m 嵌入模块
  3. rem mkimage.exe -d 32位内核img所在目录 -p /efi/grub(初始菜单查找目录) -o BOOTIA32.EFI(目标文件) -O i386-efi(目标类型为固定的32位标识) -c 嵌入菜单 -f 嵌入字库 -m 嵌入模块
  4. mkimage.exe -d x86_64-efi -p /efi/grub -o BOOTX64.EFI -O x86_64-efi -m hotkey
复制代码

这个是主菜单
  1. terminal console
  2. debug off
  3. timeout 1

  4. #默认启动菜单
  5. set grmenu=h3_gr2hd.lst

  6. #光启菜单
  7. if %?_BOOT%==(cd) set grmenu=h3_gr2cd.lst
  8. checkrange 0xA0:0xFF read 0x82A0 > nul && set grmenu=h3_gr2cd.lst

  9. #网启菜单
  10. if %?_BOOT%==(pd) pxe keep && set grmenu=h3_grpxe.lst

  11. #判断32或64位
  12. calc *0x8272&0xff > nul ;; set arch=%@retval%
  13. if "%arch%"=="64" && set IA=x64 && set EXTP=/EFI/grub/ext ! set IA=ia32 && set EXTP=/EFI/grub/ext32 && set arch=PE

  14. #设置第一项为默认值
  15. graphicsmode -1 1024
  16. splashimage /BOOT/GRUB/BACK.JPG
  17. #font /EFI/grub/fonts/unifont.hex
  18. font /BOOT/GRUB/UNIFONT.HEX
  19. command --set-path=()%EXTP%

  20. #启用热键
  21. hotkey
  22. setmenu --hotkey-color=0xff00ff

  23. #定义自动编号及编号间隔符
  24. #write 0x8274 0x2D01

  25. #设置字符颜色(高32位是背景色,低32位是前景色。在命令行执行:echo -rrggbb,可查看对应的颜色。)
  26. color normal=0x999999 highlight=0xffffff helptext=0xffff heading=0x66ff00

  27. #字距与行距
  28. terminal --font-spacing=0:3

  29. #设置菜单框
  30. setmenu --box x=16 w=90 y=5 h=28 l=0 --lang=zh --ver-off
  31. #setmenu --font-spacing=1:5
  32. #设置倒计时
  33. #setmenu --timeout=x=y=颜色

  34. configfile /EFI/grub/%grmenu%
复制代码

回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-6-11 04:32

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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