无忧启动论坛

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

[原创] GRUB4DOS for UEFI

    [复制链接]
31#
发表于 2021-4-23 10:23:21 | 显示全部楼层
2011yaya2007777 发表于 2021-4-22 15:13
我大致看了一下源码,它搜索关键字,不是从9f000开始往低搜索,而是从int13接口开始往高搜索。UEFI模式没有 ...

把32位的g4e发过来我测试一下
回复

使用道具 举报

32#
发表于 2021-4-24 14:06:23 | 显示全部楼层
2011yaya2007777 发表于 2021-4-24 14:02
现在就能嵌入hex格式的字库。至于背景图,我看算了吧。反正它可以加载背景图文件。

又不能显示英文了,刚下的最新版
回复

使用道具 举报

33#
发表于 2021-4-24 14:24:52 | 显示全部楼层
32位也是一样,32位怎么大小与210还是一样的?
回复

使用道具 举报

34#
发表于 2021-4-24 16:14:00 | 显示全部楼层
本帖最后由 hhh333 于 2021-4-24 16:15 编辑
2011yaya2007777 发表于 2021-4-24 14:44
我从官网下载,测试没有问题。你看看,是哪里出问题了。

就是官网,首页的那个。你再查一下 grub4dos-for_UEFI-2021-04-24_2.7z (547.72 KB, 下载次数: 10)
回复

使用道具 举报

35#
发表于 2021-4-24 16:15:56 | 显示全部楼层
两次下载结果一样,换回18号的可以

点评

我试了下,官网下载的2021-04-24版本,不加载任何字库,英文显示正常。是你那边的问题吧?文件搞混淆了吧?g4e开机顶部有日期。  详情 回复 发表于 2021-4-24 17:38
回复

使用道具 举报

36#
发表于 2021-4-24 17:15:51 | 显示全部楼层
2011yaya2007777 发表于 2021-4-24 14:44
我从官网下载,测试没有问题。你看看,是哪里出问题了。

查好没有?
回复

使用道具 举报

37#
发表于 2021-4-24 18:18:45 | 显示全部楼层
本帖最后由 hhh333 于 2021-4-24 18:50 编辑
liuzhaoyzz 发表于 2021-4-24 17:38
我试了下,官网下载的2021-04-24版本,不加载任何字库,英文显示正常。是你那边的问题吧?文件搞混淆了吧 ...

这是字库: UNIFONT.7z (7.84 KB, 下载次数: 20) 这是做启动的映像文件: grub4efi.7z (250.61 KB, 下载次数: 22)
试下上面这个就知道了,版本显示不出来
不加载字库是这个样子。觉得版本不对吗?

加字库后就是这样的


点评

我这边用你分享的字库测试了下,加载之后,只是中文没有显示,但是英文显示都是正常的啊? 奇怪。 字库不全吧。  详情 回复 发表于 2021-4-24 19:11
回复

使用道具 举报

38#
发表于 2021-4-24 19:20:58 | 显示全部楼层
liuzhaoyzz 发表于 2021-4-24 19:11
我这边用你分享的字库测试了下,加载之后,只是中文没有显示,但是英文显示都是正常的啊?
奇怪。
字库 ...

18号的一切正常
回复

使用道具 举报

39#
发表于 2021-4-24 20:31:28 | 显示全部楼层
liuzhaoyzz 发表于 2021-4-24 19:11
我这边用你分享的字库测试了下,加载之后,只是中文没有显示,但是英文显示都是正常的啊?
奇怪。
字库 ...

这是个精简字库,用chenall的工具生成,前面有帖子说明了
回复

使用道具 举报

40#
发表于 2021-4-24 22:05:10 | 显示全部楼层
本帖最后由 hhh333 于 2021-4-24 22:17 编辑
2011yaya2007777 发表于 2021-4-24 20:57
@hhh333,我一开始理解你的反馈,是不加载字库,不能显示英文。但是看后来的截图及论述,你好像是说,加载 ...

是的,是的,应该是16的。18号发布的那个bootx64.efi没有问题,中英文都可以显示,怎么新版又回到解放前了呢?
回复

使用道具 举报

41#
发表于 2021-4-25 09:23:18 | 显示全部楼层
本帖最后由 hhh333 于 2021-4-25 10:08 编辑
2011yaya2007777 发表于 2021-4-25 08:21
下载了你提供的字库,在菜单中设置 font /UNIFONT.HEX,可以正常显示中英文字符。
你提供的映像文件grub ...

好吧,我做一个测试包: H3CD.7z (1.87 MB, 下载次数: 17)
里面有说明。
H3CD\EFI\grub4efi.bin中的bootx64.efi换成18号的一切正常。

回复

使用道具 举报

42#
发表于 2021-4-25 11:13:22 | 显示全部楼层
本帖最后由 hhh333 于 2021-4-25 11:17 编辑
2011yaya2007777 发表于 2021-4-25 10:43
你efi目录下面,没有子目录boot,BOOTX64.EFI放在何处?

老大,这是MS的UDF格式的ISO的做法,是把H3CD\EFI\grub4efi.bin作引导镜像,打包到ISO的引导区,G4E就在这个BIN文件中。不需要再读盘上的bootx64.efi

readme中有说明:
1."H3CD\SETUP\MKISOFS\OSCDUDF-GRW.CMD"为生成ISO的批处理,运行后会产生UDF格式的ISO,请选第5项
2、"H3CD\SETUP\MKFONT\GR_MKMFONT.CMD"为所有的G4D、G4E菜单生成字库
3、"H3CD\EFI\grub4efi.bin"为EFI启动区映像,里面是G4E的文件,要更换请用ultraiso或winimage打开更换。现在里面是新版,18日的版本没有问题。

回复

使用道具 举报

43#
发表于 2021-4-25 11:21:43 | 显示全部楼层
2011yaya2007777 发表于 2021-4-25 10:37
你做成一个img或者iso文件多好。

就是为了让你测试方便才把字库与生成ISO的批理放里面,你可以随时生成ISO,再在虚拟机中测试。
回复

使用道具 举报

44#
发表于 2021-4-25 11:21:55 | 显示全部楼层
本帖最后由 hhh333 于 2021-4-25 11:28 编辑
2011yaya2007777 发表于 2021-4-25 10:37
你做成一个img或者iso文件多好。

这种方式生成的ISO,用UltraISO再编辑时可以不破坏EFI启动信息
回复

使用道具 举报

45#
发表于 2021-4-25 11:33:14 | 显示全部楼层
用QMENU测试结果一样:

点评

看样子你在等米下锅啊,哈哈。你有没有试过用官方的unifont.hex.gz试试看?  详情 回复 发表于 2021-4-25 11:51
回复

使用道具 举报

46#
发表于 2021-4-25 11:54:09 | 显示全部楼层
liuzhaoyzz 发表于 2021-4-25 11:51
看样子你在等米下锅啊,哈哈。你有没有试过用官方的unifont.hex.gz试试看?

哈哈。早试了,没问题,210就没问题。
回复

使用道具 举报

47#
发表于 2021-4-26 09:32:57 | 显示全部楼层
2011yaya2007777 发表于 2021-4-26 09:02
@hhh333,问题终于搞清楚了。

/efi/grub/menu.lst文件里:

1、没注意还有这个逻辑关系,18号的能用,24号不能用以为为了续尾功能引入了什么妖娥子
2、写法与原先兼容了那么
checkrange 0xA0:0xFF read #0x82A0 > nul && set grmenu=h3_gr2cd.lst

可写成:checkrange 0xA0:0xFF read 0x82A0 > nul && set grmenu=h3_gr2cd.lst是吧
3、calc *0x8272&0xff > nul ;; set arch=%@retval%
这句是不是可以再精炼一点,觉得拐弯了。还是不能直接管道吗?

点评

很吃惊,难以置信,你居然会犯这么低级的错误!g4d/g4e不进入图形模式,怎么可能加载字体呢?!我就说我这边测试没问题啊,你的菜单我没看。这是使用层面的问题,g4e里面有menu.lst的demo啊。 yaya排查错误  详情 回复 发表于 2021-4-26 10:40
回复

使用道具 举报

48#
发表于 2021-4-26 11:52:03 | 显示全部楼层
本帖最后由 hhh333 于 2021-4-26 11:53 编辑
liuzhaoyzz 发表于 2021-4-26 10:40
很吃惊,难以置信,你居然会犯这么低级的错误!g4d/g4e不进入vbe/gfx图形模式,vga模式怎么可能 ...

看一下g4d,我一直是先加字库再加图片,用了N年了。应该是yaya的设计逻辑还不够健壮。我的理解加字库与显示字不是一个动作,字库只是告诉从哪里取字模,根据屏幕模式显示字体是显示部分的事。逻辑上来讲,字库指定要在显示字体之前,显示字体部分要在屏幕设定之后,至于指定字库与设定屏幕逻辑上顺序上应该是无限制的。

点评

你这个理解不对。 看下grub4dos的说明文档: font[/backcolor]用法: font[/backcolor] FILE 描述: 加载多语言字库文件。 命令格式: font /boot/grub/unifont.hex 注意:1,菜单文件需使用 UTF-8 文本  详情 回复 发表于 2021-4-26 12:06
回复

使用道具 举报

49#
发表于 2021-4-26 12:18:21 | 显示全部楼层
本帖最后由 hhh333 于 2021-4-26 12:25 编辑
liuzhaoyzz 发表于 2021-4-26 12:06
你这个理解不对。

没有指责的意思。只是通俗的理解有偏差。G4D以前那么用是可以的,G4E不行才推理一下。不明白内部机制,也没什么发言权。只按小白思维来就事论事而已。

我还是坚持逻辑上字库应该与模式无关,只是显示字体才与屏幕模式有关
回复

使用道具 举报

50#
发表于 2021-4-26 16:58:38 | 显示全部楼层
本帖最后由 hhh333 于 2021-4-26 16:59 编辑
2011yaya2007777 发表于 2021-4-26 10:01
2. 可写成:checkrange 0xA0:0xFF read 0x82A0 > nul && set grmenu=h3_gr2cd.lst
3. 不能。不可以测试比 ...

calc *0x8272&0xff > nul ;; set arch=%@retval%
if "%arch%"=="64" set IA=x64 ! set IA=ia32 && set arch=PE
以上第二句还不行必须加一个这样的
if "%arch%"=="64" && set IA=x64 ! set IA=ia32 && set arch=PE
如果后面没有这样可以成立:
if "%arch%"=="64" set IA=x64
只要后面有其他语句则 &&不能省
if "%arch%"=="64" && set IA=x64 ! set IA=ia32
这样写就不对:
if "%arch%"=="64" set IA=x64 ! set IA=ia32

太容易出错了
回复

使用道具 举报

51#
发表于 2021-4-26 18:18:57 | 显示全部楼层
2011yaya2007777 发表于 2021-4-26 17:22
对于初学者,一是借鉴前辈的作品,二是在命令行测试,也不麻烦。

用g4e调用shellx64.efi,想shellx64.efi直接执行startup.nsh而不用等待5秒或按任意键
chainloader /EFI/boot/shellx64.efi可不可以传一个回车给它

点评

chainloader /path/to/shell.efi -delay 0 -nomap  详情 回复 发表于 2021-4-26 19:04
回复

使用道具 举报

52#
发表于 2021-4-26 19:18:46 | 显示全部楼层
本帖最后由 hhh333 于 2021-4-26 19:21 编辑
2011yaya2007777 发表于 2021-4-26 18:59
等待时间设置为0即可。

在脚本里面吗?还没执行的。真不清楚在哪设置。

哦,看到了。nomap是什么意思
回复

使用道具 举报

53#
发表于 2021-4-26 19:24:31 | 显示全部楼层
wintoflash 发表于 2021-4-26 19:04
chainloader /path/to/shell.efi -delay 0 -nomap

grub2也可以这么用吗?
回复

使用道具 举报

54#
发表于 2021-4-26 19:29:43 | 显示全部楼层
wintoflash 发表于 2021-4-26 19:04
chainloader /path/to/shell.efi -delay 0 -nomap

经试验没用

点评

我不知道你是怎么试的。反正我这里可以。  详情 回复 发表于 2021-4-26 19:34
回复

使用道具 举报

55#
发表于 2021-4-26 20:29:32 | 显示全部楼层
wintoflash 发表于 2021-4-26 19:34
我不知道你是怎么试的。反正我这里可以。

H3CD.7z (2.39 MB, 下载次数: 56) 这么试的,你看一下。

点评

你用的shell版本太低了。  详情 回复 发表于 2021-4-26 20:50
回复

使用道具 举报

56#
发表于 2021-4-26 21:26:18 | 显示全部楼层
wintoflash 发表于 2021-4-26 20:50
你用的shell版本太低了。

哦,32位有不有最新的

点评

你自己想办法编译吧  详情 回复 发表于 2021-4-26 22:32
回复

使用道具 举报

57#
发表于 2021-4-26 21:33:48 | 显示全部楼层
wintoflash 发表于 2021-4-26 20:50
你用的shell版本太低了。

你的grub2怎么写?
回复

使用道具 举报

58#
发表于 2021-4-26 22:16:04 | 显示全部楼层
wintoflash 发表于 2021-4-26 20:50
你用的shell版本太低了。

同样格式grub2中似乎不管用

点评

我这可以。哪个版本的grub2都可以。  详情 回复 发表于 2021-4-26 22:31
回复

使用道具 举报

59#
发表于 2021-4-26 23:11:16 | 显示全部楼层
wintoflash 发表于 2021-4-26 22:32
你自己想办法编译吧

源码在哪里下的,我不清楚

点评

你可以直接下载每日构建的版本 https://github.com/retrage/edk2-nightly  详情 回复 发表于 2021-5-1 12:47
回复

使用道具 举报

60#
发表于 2021-4-26 23:24:44 | 显示全部楼层
mygamexxx 发表于 2021-4-26 23:11
请教用G4E启动光盘(EFI启动)制作,要用的引导文件如何得到?比如G4D是grldr_cd.bin,G4E要用哪个?

1448#不是有,运行批处理就行了

点评

谢谢H大,使用后显示kernel too old,我下载的G4E是最新版4-26的  详情 回复 发表于 2021-4-27 06:48
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-16 03:04

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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