无忧启动论坛

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

[原创] GRUB4DOS for UEFI

    [复制链接]
跳转到指定楼层
#
发表于 2020-10-29 10:31:46 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式
本帖最后由 2011yaya2007777 于 2024-12-16 15:28 编辑

  使用于 UEFI 环境的 GRUB4DOS。
  
  这是一个庞大的工程,几乎所有的代码都捋了一遍。修改了控制台键盘输入输出,控制台屏幕输出,内存控制,
  驱动器控制,获取日期时间,暂停控制,图形模式及Unicode字体实现,PXE 网启,等等。
  
  开发过程中,参考了 GRUB2 源码。有关映射,参考了 wintoflash 的源码。

  文件下载:http://grub4dos.chenall.net/                  https://github.com/chenall/grub4dos/releases

更新说明:
2024-12-16 (yaya)
  支持http网起。
  例如:map (http)/imgs/pe.iso (cd)
           chainloader (cd-1)
           boor
  例如:/efi/grub/ext/ntboot (http)/imgs/pe.wim

2021-04-24 (yaya)
  支持尾续菜单, 改进批处理调试, 内置 unicode 16*16 英文点阵字符。

2020-11-18 (yaya)
  1. 菜单目录更改为:/efi/grub/menu.lst
  2. 支持实体光盘、硬盘启动。
  3. 多个光盘时,启动光盘调整为第一光盘,以适应 windows。
  4. 增加退出 GRUB4DOS 函数 exit_g4d。
  5. 批处理变更:
     函数下标不变,参数由 32 位变更为 64 位。(Fn.下标 参数1 参数2 ...)
     变量地址由 0x8304 变更为 0x8308,由 32 位变更为 64 位。
     call Fn 函数,如果使用变量 0x8200-0x8400 则要在前面加g4e,如 g4e0x8217。
     批处理增加 else 函数。增加 {脚本集} 表示法。
     如:
     if 条件
     {
       脚本集
       if 条件 {
         脚本集 }
       else {
         脚本集 }
     }
     else if 条件
     {
       脚本集
     }
     else
     {
       脚本集
     }
     注意:
     1. 大括弧必须是一行的结尾。
     2. 脚本集可多行书写。
     3. 大括弧内部可以嵌套。

2020-10-30
  1. 可以启动 efi 文件。
  2. 可以启动 iso 及 img 文件。
  3. 内置热键功能。
  
  与旧版本不同之处:
  1. 可以通过 graphicsmode 命令查看系统支持的图形模式。
  2. map 函数执行后即挂载。不需要执行 --hook 指令。
  3. 取消 --hook,--unhook,--rehook,--unmap=,--floppies=,--harddrives= 指令。
  4. 在 UEFI 环境,可以从 0x80 以外的磁盘启动,因此不需要交换磁盘操作,如 map (hd0) (hd1)。
  5. 取消删除磁盘功能,如 map (hd1) (hd1)。
  6. 目前 PXE 网启只支持 tftp。
  






点评

这个叫g4e??????  发表于 2024-7-10 19:10
辛苦了  发表于 2024-5-11 18:36
楼主, 建议提供一个样本PE,包括ISO镜像,包含某PE制作工具对应的完整包。 这样比较易学易用。 比较像grub4DOSmenu.lst那样  发表于 2023-7-22 11:13
有没有efi siso 模块啊?  发表于 2022-2-17 07:02
菜单目录更能不能自定义?  发表于 2022-1-7 21:32

评分

参与人数 130无忧币 +647 收起 理由
新空气 + 5 赞一个!
yyz2191958 + 2 赞一个!
liangzr1976 + 5 很给力!
slyneo + 5 很给力!
jhdonline + 1 很给力!
1928374655 -1 赞一个!
msvcdll + 1 很给力!
天涯无痕 + 5 很给力!
kunpeng + 5
快雪时晴 + 1 很给力!
wawakuliao + 5 赞一个!
weiteng + 5 赞一个!
2012chenyuwen + 5 很给力!
xuxuezeng + 5 很给力!
f111 + 5 很给力!!!
994956737 + 1 很给力!
9001 + 5 致敬技术大神们!
szmsys + 5 很给力!
hzghgz + 5 赞一个!
ddngng + 5 很给力!
wwj402 + 5 很给力!
小妹 + 3
lpsyuntao + 1 赞一个!
ddianxing + 5 很给力!
defswffaaaawe + 1 赞一个!
robincai + 30 亲测非常好用!
wfccsqk + 2
ypf188 + 5 很给力!
a-lao + 5 很给力!
2011cwj6958 + 5 很给力!

查看全部评分

3990#
发表于 前天 16:07 | 只看该作者
感谢分享
回复

使用道具 举报

3989#
 楼主| 发表于 前天 16:02 来自手机 | 只看该作者
压缩文件挂载到内存,是解压缩后才送往内存的。尺寸应当是解压缩后的尺寸。挂载到内存前,在命令行看看内存发布,有没有适合的空间。
回复

使用道具 举报

3988#
发表于 前天 15:11 | 只看该作者
2011yaya2007777   grub4efi 镜像文件挂起内存 故障  当然是直接挂到高位内存 --top
测试主机为32G 内存  EFI BIOS  CPU x4 641 为什么不能用大于10G的img文件来 (大于10G IMG 直接挂到内存会死机,10G、8G不会、都是用lzma压缩过 小于等于10G没问题)挂起到内存  报内存不足 自动就退出,但是内存的map上是有足够内存地址的,但是在grub4dos 里面正常 10G  16G IMG 都能挂起到内存 都能启动   IMG文件为自制ROS win10  
回复

使用道具 举报

3987#
发表于 6 天前 | 只看该作者
好东西 刚刚安装好了 好用
回复

使用道具 举报

3986#
发表于 2025-11-18 14:43:54 | 只看该作者
感谢分享
回复

使用道具 举报

3985#
发表于 2025-11-18 11:50:43 | 只看该作者
感谢分享
回复

使用道具 举报

3984#
发表于 2025-11-18 11:33:42 | 只看该作者
谢谢楼主提供
回复

使用道具 举报

3983#
发表于 2025-11-18 11:21:21 | 只看该作者
谢谢分享
回复

使用道具 举报

3982#
发表于 2025-11-7 20:15:57 | 只看该作者
mygamexxx 发表于 2025-11-7 17:09
用上面11月6日的修正版G4E,用QEMU启动测试器,好像正常的。

發文時沒先看有更新修正了..SORRY
原本是直接到網站下載檔案測試
使用站上最新版後
目前都OK了
回复

使用道具 举报

3981#
发表于 2025-11-7 19:22:46 | 只看该作者
感谢分享,收藏了
回复

使用道具 举报

3980#
发表于 2025-11-7 17:09:30 | 只看该作者
saiz 发表于 2025-11-7 16:37
我是使用ZenEMU v0.3.0.0測試

用上面11月6日的修正版G4E,用QEMU启动测试器,好像正常的。

ScreenShot_2025-11-07_170431_672.png (150.05 KB, 下载次数: 65)

ScreenShot_2025-11-07_170431_672.png

ScreenShot_2025-11-07_170451_047.png (6.28 KB, 下载次数: 55)

ScreenShot_2025-11-07_170451_047.png

ScreenShot_2025-11-07_170708_648.png (40.04 KB, 下载次数: 54)

ScreenShot_2025-11-07_170708_648.png

ScreenShot_2025-11-07_170801_951.png (40 KB, 下载次数: 64)

ScreenShot_2025-11-07_170801_951.png

点评

發文時沒先看有更新修正了..SORRY 原本是直接到網站下載檔案測試 使用站上最新版後 目前都OK了  详情 回复 发表于 2025-11-7 20:15
回复

使用道具 举报

3979#
发表于 2025-11-7 16:50:19 | 只看该作者
牛,学习看看
回复

使用道具 举报

3978#
发表于 2025-11-7 16:37:47 | 只看该作者
本帖最后由 saiz 于 2025-11-7 16:39 编辑
mygamexxx 发表于 2025-11-7 07:52
从启动界面看好像与QEMU直接启动ISO映像相同,不知道正常运行是怎么样的?

我是使用ZenEMU v0.3.0.0測試
title Memtest86+ \n記憶體測試工具
                find --set-root /ISO/memtest.iso
                map --mem /ISO/memtest.iso (0xff)
                chainloader (0xff)

zemu-20251107083510.png (4.19 KB, 下载次数: 44)

2025-10-29 G4E失敗

2025-10-29 G4E失敗

zemu-20251107083157.png (6.65 KB, 下载次数: 52)

2025-08-19 G4E成功

2025-08-19 G4E成功

点评

用上面的修正版  详情 回复 发表于 2025-11-7 17:09
回复

使用道具 举报

3977#
发表于 2025-11-7 15:27:53 | 只看该作者
多谢分享!
回复

使用道具 举报

3976#
 楼主| 发表于 2025-11-7 09:45:35 | 只看该作者
回報:

3972#已经修正,试一试。

QEMU测试正常。
ZenEMU测试,无论哪个版本,都崩溃。
回复

使用道具 举报

3975#
发表于 2025-11-7 07:52:51 | 只看该作者
saiz 发表于 2025-11-6 20:53
回報:
使用 2025-10-29版無法啟動 memtest86+ iso檔 (v8.0) 及 memtest86 img檔 (v11.5)

从启动界面看好像与QEMU直接启动ISO映像相同,不知道正常运行是怎么样的?

ScreenShot_2025-11-07_074847_066.png (6.74 KB, 下载次数: 59)

ScreenShot_2025-11-07_074847_066.png

ScreenShot_2025-11-07_074651_586.png (12.75 KB, 下载次数: 65)

ScreenShot_2025-11-07_074651_586.png

点评

我是使用ZenEMU v0.3.0.0測試  详情 回复 发表于 2025-11-7 16:37
回复

使用道具 举报

3974#
发表于 2025-11-6 23:54:47 | 只看该作者
支持
回复

使用道具 举报

3973#
发表于 2025-11-6 20:53:03 | 只看该作者
回報:
使用 2025-10-29版無法啟動 memtest86+ iso檔 (v8.0) 及 memtest86 img檔 (v11.5)

使用 2025--8-19版可正常啟動

点评

从启动界面看好像与QEMU直接启动ISO映像相同,不知道正常运行是怎么样的?  详情 回复 发表于 2025-11-7 07:52
回复

使用道具 举报

3972#
发表于 2025-11-6 16:22:16 | 只看该作者
本帖最后由 mygamexxx 于 2025-11-6 16:39 编辑
2011yaya2007777 发表于 2025-11-6 16:15
感谢你的执着和耐心,确实发现一个bug.

测试正常了,谢谢YAYA大。
回复

使用道具 举报

3971#
 楼主| 发表于 2025-11-6 16:15:47 | 只看该作者
另外,这个ISO我用2025年9月5日版的G4E,本地启动,map --mem 又是可以正常启动的。

感谢你的执着和耐心,确实发现一个bug.

BOOTX64.rar

146.93 KB, 下载次数: 15, 下载积分: 无忧币 -2

点评

测试正常了  详情 回复 发表于 2025-11-6 16:22
回复

使用道具 举报

3970#
发表于 2025-11-6 08:28:21 | 只看该作者
本帖最后由 mygamexxx 于 2025-11-6 10:10 编辑
2011yaya2007777 发表于 2025-11-5 19:21
这个版本是2022年的,尽管boot.wim是2025年的。问题重现,G4E不支持的iso类型。

另外,这个ISO我用2025年9月5日版的G4E,本地启动,map --mem 又是可以正常启动的。
2025年10月29日版的G4E,boot回车后,返回到命令行。

ScreenShot_2025-11-06_095817_754.png (19.52 KB, 下载次数: 63)

ScreenShot_2025-11-06_095817_754.png

ScreenShot_2025-11-06_100127_713.png (382.98 KB, 下载次数: 57)

ScreenShot_2025-11-06_100127_713.png

ScreenShot_2025-11-06_100539_177.png (17.78 KB, 下载次数: 67)

ScreenShot_2025-11-06_100539_177.png

ScreenShot_2025-11-06_100555_967.png (15.43 KB, 下载次数: 65)

ScreenShot_2025-11-06_100555_967.png
回复

使用道具 举报

3969#
发表于 2025-11-5 22:00:36 | 只看该作者
2011yaya2007777 发表于 2025-11-5 19:21
这个版本是2022年的,尽管boot.wim是2025年的。问题重现,G4E不支持的iso类型。

又长知识了,不知道不支持的iso类型指什么?
回复

使用道具 举报

3968#
发表于 2025-11-5 19:29:56 | 只看该作者

NewBeePlus_Server2025

使用VM直接挂载iso,启动正常。
回复

使用道具 举报

3967#
 楼主| 发表于 2025-11-5 19:21:34 | 只看该作者

这个版本是2022年的,尽管boot.wim是2025年的。问题重现,G4E不支持的iso类型。

NewBeePlus_Server2025
链接:https://share.weiyun.com/2ToO66aD 密码:newbee

这个版本是2025年的,G4E支持的iso类型。启动正常。

点评

另外,这个ISO我用2025年9月5日版的G4E,本地启动,map --mem 又是可以正常启动的。  详情 回复 发表于 2025-11-6 08:28
又长知识了,不知道不支持的iso类型指什么?  详情 回复 发表于 2025-11-5 22:00
回复

使用道具 举报

3966#
发表于 2025-11-5 17:38:19 | 只看该作者
小白问一下,这个怎么用,文件下回来直接放在U盘里吗?
回复

使用道具 举报

3965#
发表于 2025-11-5 16:56:17 | 只看该作者
2011yaya2007777 发表于 2025-11-5 13:09
使用VM直接挂载iso,启动正常。
网起,ipxe->g4e:
map  --mem /imgs/NewBeePlus_Server2025.iso (0xff ...

实机:
G4D最新版,进入命令行,map --mem方式,启动PE正常。
G4E最新版,进入命令行,map --mem方式,启动不正常。
回复

使用道具 举报

3964#
发表于 2025-11-5 16:43:44 | 只看该作者
2011yaya2007777 发表于 2025-11-5 13:09
使用VM直接挂载iso,启动正常。
网起,ipxe->g4e:
map  --mem /imgs/NewBeePlus_Server2025.iso (0xff ...

通过网盘分享的文件:NewBeePlus_Server.iso
链接: https://pan.baidu.com/s/1xj4Uw-pwcTB_R5z87SmEUA 提取码: edxi
回复

使用道具 举报

3963#
发表于 2025-11-5 16:42:07 | 只看该作者
zenEMU启动ISO也是正常的。

ScreenShot_2025-11-05_164049_338.png (324.29 KB, 下载次数: 55)

ScreenShot_2025-11-05_164049_338.png
回复

使用道具 举报

3962#
发表于 2025-11-5 16:25:56 | 只看该作者
本帖最后由 mygamexxx 于 2025-11-5 16:28 编辑
2011yaya2007777 发表于 2025-11-5 13:09
使用VM直接挂载iso,启动正常。
网起,ipxe->g4e:
map  --mem /imgs/NewBeePlus_Server2025.iso (0xff ...

应该没有损坏,VMware直接加载ISO,启动是正常的。用9月5日版的G4E,本地硬盘启动,map --mem方式也是正常的。

ScreenShot_2025-11-05_135503_681.png (19.04 KB, 下载次数: 57)

ScreenShot_2025-11-05_135503_681.png

ScreenShot_2025-11-05_135436_835.png (378.21 KB, 下载次数: 71)

ScreenShot_2025-11-05_135436_835.png
回复

使用道具 举报

3961#
 楼主| 发表于 2025-11-5 13:09:52 | 只看该作者
NewBeePlus_Server2025

使用VM直接挂载iso,启动正常。
网起,ipxe->g4e:
map  --mem /imgs/NewBeePlus_Server2025.iso (0xff)
chainloader (0xff)
boot
正常。

map  /imgs/NewBeePlus_Server2025.iso (0xff)
chainloader (0xff)
boot
正常。

你的PE损坏了!

点评

实机: G4D最新版,进入命令行,map --mem方式,启动PE正常。 G4E最新版,进入命令行,map --mem方式,启动不正常。  详情 回复 发表于 2025-11-5 16:56
通过网盘分享的文件:NewBeePlus_Server.iso 链接: https://pan.baidu.com/s/1xj4Uw-pwcTB_R5z87SmEUA 提取码: edxi  详情 回复 发表于 2025-11-5 16:43
应该没有损坏,VMware直接加载ISO,启动是正常的。  详情 回复 发表于 2025-11-5 16:25
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2025-11-27 13:44

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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