无忧启动论坛

 找回密码
 注册
搜索

GRUB4DOS for UEFI

查看数: 660771 | 评论数: 3651 | 收藏 193
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2020-10-29 10:31

正文摘要:

本帖最后由 2011yaya2007777 于 2024-12-16 15:28 编辑   使用于 UEFI 环境的 GRUB4DOS。      这是一个庞大的工程,几乎所有的代码都捋了一遍。修改了控制台键盘输入输出,控制 ...

回复

mygamexxx 发表于 昨天 10:04

谢谢,明白了。
xiaoy 发表于 前天 18:25
2011yaya2007777 发表于 2025-5-12 18:07
你这不是出菜单了吗?

出菜单的是2.25版本,  下面一张图才是不出菜单的新版
2011yaya2007777 发表于 前天 18:09
但用ipxe测试是能够HTTP启动成功的

ipxe自带http功能。

点评

谢谢,明白了。  详情 回复 发表于 昨天 10:04
2011yaya2007777 发表于 前天 18:07
两个版本对比

你这不是出菜单了吗?

点评

出菜单的是2.25版本, 下面一张图才是不出菜单的新版  详情 回复 发表于 前天 18:25
2011yaya2007777 发表于 前天 17:46
grub4dos-for_UEFI-2025-05-10版本,

使用zemu v0.2测试情况:
使用本身的http功能,使用ntboot加载10PE.WIM,蓝屏,错误代码也是0xc0000001.
然后关闭本身的http功能,使用EasyWebSvr,结果启动成功。
再关闭EasyWebSvr,使用本身的http功能,结果启动成功。不知是巧合,还是其他,待反复测试。
xiaoy 发表于 前天 17:35
2011yaya2007777 发表于 2025-5-12 16:28
可以进命令行吗?如果可以,请执行以下命令:
root
find

两个版本对比

123.png (142.8 KB, 下载次数: 0)

123.png

QQ_1747042398630.png (41.21 KB, 下载次数: 0)

QQ_1747042398630.png
mygamexxx 发表于 前天 17:12
本帖最后由 mygamexxx 于 2025-5-12 17:32 编辑
2011yaya2007777 发表于 2025-5-12 16:59
你这个版本太旧,不支持http.
还一个QEMU v7.2.0以上测试。

但用ipxe测试是能够HTTP启动成功的。ipxe脚本分成两段。autoexec.ipxe最后chain /menu.ipxe,menu.ipxe是加载PE的脚本,就是显示出来的菜单。原来用一个菜单无法HTTP,总是TFTP。

wechat_2025-05-12_171439_561.png (43.25 KB, 下载次数: 0)

wechat_2025-05-12_171439_561.png

wechat_2025-05-12_171455_039.png (42.46 KB, 下载次数: 0)

wechat_2025-05-12_171455_039.png

wechat_2025-05-12_171724_515.png (324.61 KB, 下载次数: 0)

wechat_2025-05-12_171724_515.png
mygamexxx 发表于 前天 17:11
2011yaya2007777 发表于 2025-5-12 16:54
蓝屏的原因可能是引导文件没有读完整。
看错误信息,好像单次传输的文件太大了。我使用QEMU7.2.0测试, ...

最新的0.2.0.0版
2011yaya2007777 发表于 前天 17:05
VMware虚拟机,TFTP启动(无HTTP服务器),/efi/ext/ntboot /boot/boot.wim,不出菜单,出错如图。

因为出现菜单前,要加载字库,背景图等等,这些读取模式默认是http。然而你没有这个服务,所以等待超时。
2011yaya2007777 发表于 前天 16:59
旧版QEMU + EasyWebSvr,NTBOOT方式,能出菜单。所需时间太长(估计需15分钟左右),未等待最终结果

你这个版本太旧,不支持http.
还一个QEMU v7.2.0以上测试。

点评

但用ipxe测试是能够HTTP启动成功的。  详情 回复 发表于 前天 17:12
2011yaya2007777 发表于 前天 16:54
新版用QEMU测试:NTBOOT方式,能出菜单,有出错信息,最终结果蓝屏。

蓝屏的原因可能是引导文件没有读完整。
看错误信息,好像单次传输的文件太大了。我使用QEMU7.2.0测试,单次传输4096字节。你这个单次传输0x1e8d5ac0字节!看来得限制一下。
你使用的是wintoflash的zemu_qemu什么版本?

点评

最新的0.2.0.0版  详情 回复 发表于 前天 17:11
2011yaya2007777 发表于 前天 16:42
vmware16.1.2测试,uefi下面启动pe.wim,似乎过程中有时候有出错提示,有时候又没有出错提示;大部分时候正常,有时候会蓝屏。

有出错提示但是没有停止,是由于内部有重新加载功能。

用wintoflash的zemu_qemu0.2版本测试,似乎找不到/efi/grub/menu.lst菜单。

我使用v0.0.5.0测试正常。我下载v0.2再试一试。
2011yaya2007777 发表于 前天 16:28
我同样的启动环境,12月16版能显示菜单

可以进命令行吗?如果可以,请执行以下命令:
root
find
configfile /efi/grub/menu.lst

点评

两个版本对比  详情 回复 发表于 前天 17:35
mygamexxx 发表于 前天 09:04
本帖最后由 mygamexxx 于 2025-5-12 11:57 编辑

VMware虚拟机,HTTP启动(有HTTP服务器),/efi/ext/ntboot /boot/boot.wim,出菜单,正常到PE桌面。
VMware虚拟机,TFTP启动(无HTTP服务器),/efi/ext/ntboot /boot/boot.wim,不出菜单,出错如图。

wechat_2025-05-12_090122_178.png (4.69 KB, 下载次数: 0)

wechat_2025-05-12_090122_178.png
mygamexxx 发表于 前天 08:08
本帖最后由 mygamexxx 于 2025-5-12 10:13 编辑

旧版QEMU + EasyWebSvr,NTBOOT方式,能出菜单。所需时间太长(估计需15分钟左右),未等待最终结果。
/efi/ext/ntboot /boot/boot.wim,发现这里是TFTP方式(上一张图)
改为/efi/ext/ntboot (http)/boot/boot.wim,还是TFTP(下一张图),多一句出错信息。

wechat_2025-05-12_095534_431.png (44.71 KB, 下载次数: 0)

wechat_2025-05-12_095534_431.png

HTTP.png (46.29 KB, 下载次数: 0)

HTTP.png
mygamexxx 发表于 前天 07:58
本帖最后由 mygamexxx 于 2025-5-12 10:29 编辑

旧版QEMU,TFTP,NTBOOT方式,/efi/ext/ntboot (http)/boot/boot.wim,能出菜单,有出错信息。/efi/ext/ntboot /boot/boot.wim,能出菜单,无出错信息。所需时间太长(估计需15分钟左右),未等待最终结果。

wechat_2025-05-12_075437_169.png (169.55 KB, 下载次数: 1)

wechat_2025-05-12_075437_169.png

wechat_2025-05-12_094740_740.png (54.83 KB, 下载次数: 0)

wechat_2025-05-12_094740_740.png

wechat_2025-05-12_102814_624.png (48.86 KB, 下载次数: 0)

wechat_2025-05-12_102814_624.png
mygamexxx 发表于 前天 07:51
本帖最后由 mygamexxx 于 2025-5-12 11:58 编辑

map方式:能出菜单,有出错信息,最终结果蓝屏。

wechat_2025-05-12_074215_827.png (11.25 KB, 下载次数: 0)

wechat_2025-05-12_074215_827.png

wechat_2025-05-12_115759_350.png (50.83 KB, 下载次数: 0)

wechat_2025-05-12_115759_350.png
mygamexxx 发表于 前天 07:49
本帖最后由 mygamexxx 于 2025-5-12 11:58 编辑

新版用QEMU测试:NTBOOT方式,能出菜单,有出错信息,最终结果蓝屏。



wechat_2025-05-12_073805_096.png (26.07 KB, 下载次数: 0)

wechat_2025-05-12_073805_096.png

wechat_2025-05-12_073630_718.png (7.67 KB, 下载次数: 0)

wechat_2025-05-12_073630_718.png

wechat_2025-05-12_073503_302.png (30.68 KB, 下载次数: 0)

wechat_2025-05-12_073503_302.png
liuzhaoyzz 发表于 3 天前
本帖最后由 liuzhaoyzz 于 2025-5-11 21:24 编辑
2011yaya2007777 发表于 2025-5-10 11:10
新版本可以使用qemu网起了。

grub4dos-for_UEFI-2025-05-10版本,
vmware16.1.2测试,uefi下面启动pe.wim,似乎过程中有时候有出错提示,有时候又没有出错提示;大部分时候正常,有时候会蓝屏。
启动pe.iso可以。
速度基本跑满了网速带宽。


用wintoflash的zemu_qemu0.2版本测试,似乎找不到/efi/grub/menu.lst菜单。

xiaoy 发表于 3 天前
2011yaya2007777 发表于 2025-5-10 11:10
新版本可以使用qemu网起了。

我同样的启动环境,12月16版能显示菜单  启动失败, 2月25的版本 菜单 启动一切正常 HTTP速度不快   其它版本均看不到菜单  包含最新的5.10
ebaqiang 发表于 3 天前
感谢分享、
2011yaya2007777 发表于 4 天前
最近使用zenemu测试遇到点问题

新版本可以使用qemu网起了。

点评

grub4dos-for_UEFI-2025-05-10版本, vmware16.1.2测试,uefi下面启动pe.wim,似乎过程中有时候有出错提示,有时候会蓝屏。 启动pe.iso可以。 速度基本跑满了网速带宽。 [attachimg]558473[/attachimg] [attach  详情 回复 发表于 3 天前
我同样的启动环境,12月16版能显示菜单  启动失败, 2月25的版本 菜单 启动一切正常 HTTP速度不快   其它版本均看不到菜单  包含最新的5.10  详情 回复 发表于 3 天前
mygamexxx 发表于 2025-4-19 06:27:01
最近使用zenemu测试遇到点问题,就使用“Qemu启动测试器x64”测试。发现“Qemu启动测试器x64”与EasyWebSvr配合,ipxe.efi能通过HTTP顺利PXE启动至PE桌面(需要改变内存至2048M,1024M提示内存不够)。但测试到G4E,发现能出菜单,但使用的是TFTP,无法顺利启动PE。

另外,同一个PE,zenemu无法在该PE中使用,“Qemu启动测试器x64”能使用。
vyuha 发表于 2025-4-19 02:56:42
谢谢
不点 发表于 2025-4-17 16:11:51
wintoflash 发表于 2025-4-17 12:18
能把BIOS下grub4dos的map功能移植到BIOS的grub2下就好了。
但是grub4dos目前代码太乱太多了,我搞不明白 ...

继续操作 BIOS,不知有啥想法?依我的看法,for BIOS 不用再继续搞了。继续搞,就是浪费时间,就是浪费生命。

UEFI 下有了 map,就已经很不错了,这个工作很棒。甚而至于,UEFI 下(即使)不用 map 也有(别的)启动 ISO 的方法。map 的地位在降低。也就是说,连 map 都要过时了,或者说,已经在“过时”的过程中。
sunsea 发表于 2025-4-17 13:33:59
不点 发表于 2025-4-17 09:59
本人的使用,极其简单。基本就是在 “一盘走天下【自由拼装修改版】”当中使用罢了。不曾用到批处理之类 ...

我也基本一样,对于g4e主要的命令知识都来自于菜单中的样板菜单。
shibbb12345 发表于 2025-4-17 13:24:17
谢谢楼主分享。
pentium4 发表于 2025-4-17 13:23:59
这个棒,感谢分享。   
wintoflash 发表于 2025-4-17 12:18:54
sunsea 发表于 2025-4-16 12:59
有一说一,感觉对这种以前的trick类的这种用硬编码地址啊、非公开内容啊啥的东西,应该至少在g4e中要么予 ...

能把BIOS下grub4dos的map功能移植到BIOS的grub2下就好了。
但是grub4dos目前代码太乱太多了,我搞不明白。
目前在研究syslinux的memdisk。

点评

继续操作 BIOS,不知有啥想法?依我的看法,for BIOS 不用再继续搞了。继续搞,就是浪费时间,就是浪费生命。 UEFI 下有了 map,就已经很不错了,这个工作很棒。甚而至于,UEFI 下(即使)不用 map 也有(别的)  详情 回复 发表于 2025-4-17 16:11
不点 发表于 2025-4-17 10:10:11
wintoflash 发表于 2025-4-17 09:27
如果主板的UEFI支持CSM的话,会把前面的内存锁定防止普通uefi程序申请占用,以便切换到Legacy BIOS模式后 ...

那我觉得这还是挺严重的一个问题,需要仔细对待。旧的 call Fn 之类的绝对地址使用方式,以及 g4e 对于绝对地址的占用,就可能与 UEFI、CSM 产生内存冲突。比如说,旧的 g4d 的批处理程序占据了某个绝对地址,这本身就有可能与 UEFI 相冲突。这在 BIOS 下是不会有冲突的,因为 BIOS 系统不会占据 chenall 为批处理设定的内存位置。

这让我想到了 Ventoy。Ventoy 没有与 g4d 兼容的包袱。所以,Ventoy 就不存在这方面的问题。

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

闽公网安备 35020302032614号

GMT+8, 2025-5-14 02:28

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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