无忧启动论坛

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

[原创] 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 很给力!

查看全部评分

3782#
 楼主| 发表于 7 天前 来自手机 | 只看该作者
换一个独立的HTTP服务 ,就只读一次,时间大大的缩短。
回复

使用道具 举报

3781#
发表于 7 天前 | 只看该作者
xiaoy 发表于 2025-8-14 23:30
用8.14终于启动成功,但发现 1.http传输并没有想像中快,千兆环境, 2 ,感觉文件下载了两次

是的,[16M/395M]会出现两次。我也是这样。但能成功启动到PE桌面了。
回复

使用道具 举报

3780#
发表于 2025-8-14 23:30:57 | 只看该作者
用8.14终于启动成功,但发现 1.http传输并没有想像中快,千兆环境, 2 ,感觉文件下载了两次

捕获.JPG (51.58 KB, 下载次数: 4)

捕获.JPG

点评

是的,[16M/395M]会出现两次。我也是这样。  详情 回复 发表于 7 天前
回复

使用道具 举报

3779#
 楼主| 发表于 2025-8-14 18:09:16 来自手机 | 只看该作者
IPXE.EFI自带了HTTP,但是他是客户端的,不是主机端的。
回复

使用道具 举报

3778#
 楼主| 发表于 2025-8-14 18:07:19 来自手机 | 只看该作者
新版本已经上传官网。
回复

使用道具 举报

3777#
发表于 2025-8-14 17:51:47 | 只看该作者
本帖最后由 mygamexxx 于 2025-8-14 17:56 编辑
2011yaya2007777 发表于 2025-8-14 17:11
现在用dhcpsrv2.5.2的http服务也可以网起G4E了。比较怪。
最好不要使用他本身自带的http服务。

开个其他的HTTP服务器就可以,IPXE.EFI是否自带了HTTP?但关闭HTTP,IPXE.EFI也是不能HTTP网启的。
回复

使用道具 举报

3776#
 楼主| 发表于 2025-8-14 17:11:11 | 只看该作者
这个软件与TINYPXE相比,三个特色

现在用dhcpsrv2.5.2的http服务也可以网起G4E了。比较怪。
最好不要使用他本身自带的http服务。

点评

开个其他的HTTP服务器就可以  详情 回复 发表于 2025-8-14 17:51
回复

使用道具 举报

3775#
发表于 2025-8-14 02:17:07 | 只看该作者
谢谢分享
回复

使用道具 举报

3774#
发表于 2025-8-13 20:37:34 | 只看该作者
谢谢分享
回复

使用道具 举报

3773#
 楼主| 发表于 2025-8-13 17:08:59 | 只看该作者
成功转移网起目录。
现在网络适配器可以以桥接模式。NAT模式,仅主机模式运行。
但是dhcpsrv2.5.2的http服务存在问题,不适合 G4E运行。
回复

使用道具 举报

3772#
 楼主| 发表于 2025-8-13 11:36:38 来自手机 | 只看该作者
谢谢回复,等有时间再试一试。
回复

使用道具 举报

3771#
发表于 2025-8-13 11:18:13 | 只看该作者
本帖最后由 mygamexxx 于 2025-8-13 13:52 编辑

这个软件与TINYPXE相比,三个特色:一是以服务运行,二是修改配置文件后,有客户端连接会重新读取配置文件,三是不局限TFTP和HTTP根目录为服务器程序文件所在目录下。至于是否更稳定,用的不多,没经验。TINYPXE有个有意思的现象,VMware的虚拟机临时文件会影响下一次PXE启动是否能成功。

修改配置文件,文本编辑dhcpsrv.ini以管理员身份运行dhcpsrv.exe。按安装(程序位置有变动时)→【启动】。可以按【继续作为托盘应用程序】。
退出时,以管理员身份运行dhcpsrv.exe,按【停止】【移除】(解除文件占用)【退出】。如果不停止服务,即使退出程序界面,DHCP服务会一直在后台运行。

回复

使用道具 举报

3770#
发表于 2025-8-13 11:13:58 | 只看该作者
本帖最后由 mygamexxx 于 2025-8-13 11:36 编辑

试了,将程序目录从G盘,移动到D盘。运行D盘下的dhcpsrv.exe,点【管理】,再点【安装】,再点【启动】。就可以在新目录运行。
反过来,点【停止】,再点【移除】就可以删除服务。

wechat_2025-08-13_113212_969.png (24.17 KB, 下载次数: 2)

wechat_2025-08-13_113212_969.png
回复

使用道具 举报

3769#
 楼主| 发表于 2025-8-13 11:10:12 | 只看该作者
重新恢复了"C:\Download\dhcpsrv_jb51\dhcpsrv2.5.2(汉化)”这个目录,复制dhcpsrv.ini到此目录,然后以管理员运行dhcpsrv,成功了!!
感谢各位耐心指点帮助!

移动了dhcpsrv.exe位置后如何更改?
"C:\Download\dhcpsrv_jb51\dhcpsrv2.5.2(汉化)\dhcpsrv.exe" -service
回复

使用道具 举报

3768#
发表于 2025-8-13 11:04:02 | 只看该作者
本帖最后由 mygamexxx 于 2025-8-13 11:05 编辑

点dhcpsrv【管理】按钮,点【Install】,是否会弹出选择文件?

wechat_2025-08-13_110138_044.png (15.82 KB, 下载次数: 2)

wechat_2025-08-13_110138_044.png

wechat_2025-08-13_110513_339.png (10.53 KB, 下载次数: 2)

wechat_2025-08-13_110513_339.png
回复

使用道具 举报

3767#
 楼主| 发表于 2025-8-13 10:55:39 | 只看该作者
点dhcpsrv【管理】按钮,看一下服务的状态,里面第一个按钮。

找到了、

可执行文件路径不对,如何更改?
"C:\Download\dhcpsrv_jb51\dhcpsrv2.5.2(汉化)\dhcpsrv.exe" -service
回复

使用道具 举报

3766#
发表于 2025-8-13 10:51:17 | 只看该作者
本帖最后由 mygamexxx 于 2025-8-13 10:52 编辑
2011yaya2007777 发表于 2025-8-13 10:48
从哪里打开的这个界面?

点dhcpsrv【管理】按钮,看一下服务的状态,里面第一个按钮,应该是INSTALL。
回复

使用道具 举报

3765#
 楼主| 发表于 2025-8-13 10:48:06 | 只看该作者
本帖最后由 2011yaya2007777 于 2025-8-13 10:52 编辑
那就添加服务
可执行文件路径不对,如何更改?
"C:\Download\dhcpsrv_jb51\dhcpsrv2.5.2(汉化)\dhcpsrv.exe" -service

点评

点dhcpsrv【管理】按钮,看一下服务的状态,里面第一个按钮。  详情 回复 发表于 2025-8-13 10:51
回复

使用道具 举报

3764#
发表于 2025-8-13 10:43:33 | 只看该作者
本帖最后由 mygamexxx 于 2025-8-13 10:48 编辑
2011yaya2007777 发表于 2025-8-13 10:39
用TINYPXE能顺利PXE启动。
查服务,DHCP服务已停止。
点管理,再点启动,提示系统找不到指点的文件。

那就添加服务,点【安装】

wechat_2025-08-13_104320_939.png (19.44 KB, 下载次数: 3)

wechat_2025-08-13_104320_939.png
回复

使用道具 举报

3763#
 楼主| 发表于 2025-8-13 10:39:43 | 只看该作者
按这种目录与网址设置,用TINYPXE能顺利PXE启动吗?

用TINYPXE能顺利PXE启动。
查服务,DHCP服务已停止。
点管理,再点启动,提示系统找不到指点的文件。

点评

那就添加服务  详情 回复 发表于 2025-8-13 10:43
回复

使用道具 举报

3762#
发表于 2025-8-13 10:31:40 | 只看该作者
本帖最后由 mygamexxx 于 2025-8-13 10:36 编辑

教程

.page1.jpg (678.14 KB, 下载次数: 3)

.page1.jpg

.page2.jpg (546.19 KB, 下载次数: 3)

.page2.jpg

.page3.jpg (214.23 KB, 下载次数: 3)

.page3.jpg
回复

使用道具 举报

3761#
发表于 2025-8-13 10:17:16 | 只看该作者
本帖最后由 mygamexxx 于 2025-8-13 10:25 编辑
2011yaya2007777 发表于 2025-8-13 09:43
按照你的指点,新建 c:\pxe 目录(只有C盘),建立子目录。ROOT=d:\pxe 替换为 ROOT=c:\pxe 。
虚拟机网 ...

按这种目录与网址设置,用TINYPXE能顺利PXE启动吗?dhcpsrv运行后,请查看一下服务。
或点dhcpsrv【管理】按钮,看一下服务的状态,正常是运行状态。

wechat_2025-08-13_101848_781.png (59.22 KB, 下载次数: 2)

wechat_2025-08-13_101848_781.png

wechat_2025-08-13_102343_393.png (7.53 KB, 下载次数: 3)

wechat_2025-08-13_102343_393.png
回复

使用道具 举报

3760#
 楼主| 发表于 2025-8-13 09:43:56 | 只看该作者
用以上配置文件试试

按照你的指点,新建 c:\pxe 目录(只有C盘),建立子目录。ROOT=d:\pxe 替换为 ROOT=c:\pxe 。
虚拟机网卡选择桥接。192.168.88.1 等等替换为 192.168.56.1 。
ipxe.efi复制到 c:\pxe

很遗憾,客户机没有反应。

点评

按这种目录与网址设置,用TINYPXE能顺利PXE启动吗?  详情 回复 发表于 2025-8-13 10:17
回复

使用道具 举报

3759#
发表于 2025-8-13 08:54:59 | 只看该作者
本帖最后由 xiaoy 于 2025-8-13 09:00 编辑
2011yaya2007777 发表于 2025-8-13 07:17
既然这么好用,为什么我到现在都失败呢?可否指点12.
客户机:VMware Workstation 17 Pro -> 空盘
服务 ...

[SETTINGS]
IPPOOL_1=192.168.88.2-254
IPBIND_1=192.168.88.1
AssociateBindsToPools=1
Trace=0
DeleteOnRelease=0
ExpiredLeaseTimeout=3600

[GENERAL]
LEASETIME=86400
NODETYPE=8
SUBNETMASK=255.255.255.0
BOOTFILE=ipxe.efi
NEXTSERVER=192.168.88.1
DNS_0=8.8.8.8
ROUTER_0=192.168.88.1


[TFTP-SETTINGS]
EnableTFTP=1
ROOT=d:\pxe
WritePermission=0

[HTTP-SETTINGS]
EnableHTTP=1
ROOT=d:\pxe

用以上配置文件试试,即不启用DNS服务, 尽量用D E盘,不用中文件路径,虚拟机网卡选择桥接。把g4e  efi 改名为ipxe.efi复制到d:\pxe,    在d:\pxe 建立efi  grub   等目录。  
回复

使用道具 举报

3758#
 楼主| 发表于 2025-8-13 07:17:00 | 只看该作者
它非常稳定,特别是机房很多电脑同时网启, tinypxe遇到多台同时就很容易崩溃,而这个不得,即使就用它的tftp来启动PE,速度也很好,我以前也常用tinypxe  现在用这个更多了。

既然这么好用,为什么我到现在都失败呢?可否指点12.
客户机:VMware Workstation 17 Pro -> 空盘
服务器:dhcpsrv 2.5.2.3
配置:
[SETTINGS]
IPPOOL_1=192.168.88.2-254
IPBIND_1=192.168.88.1
AssociateBindsToPools=1
Trace=1
DeleteOnRelease=0
ExpiredLeaseTimeout=3600

[GENERAL]
LEASETIME=86400
NODETYPE=8
SUBNETMASK=255.255.255.0
BOOTFILE=IPXE.EFI
NEXTSERVER=192.168.88.1
DNS_0=8.8.8.8
ROUTER_0=192.168.88.1

[DNS-SETTINGS]
EnableDNS=1
FORWARD=8.8.8.8

[TFTP-SETTINGS]
EnableTFTP=1
ROOT=C:\usr\dhcpsrv\wwwroot
WritePermission=1

[HTTP-SETTINGS]
EnableHTTP=1
ROOT=C:\usr\dhcpsrv\wwwroot

C:\usr\dhcpsrv\wwwroot 目录安放网起文件 IPXE.EFI。

我是缺少什么文件?还是......

点评

[SETTINGS] IPPOOL_1=192.168.88.2-254 IPBIND_1=192.168.88.1 AssociateBindsToPools=1 Trace=0 DeleteOnRelease=0 ExpiredLeaseTimeout=3600 [GENERAL] LEASETIME=86400 NODETYPE=8 SUBNETMASK=255.25  详情 回复 发表于 2025-8-13 08:54
回复

使用道具 举报

3757#
发表于 2025-8-12 19:05:01 | 只看该作者
2011yaya2007777 发表于 2025-8-12 14:04
你这个IPXE.EFI放在何处?
ROOT=G:\  ?

是的,文件位置在tftp根目录。http根目录可与tftp根目录一致,最好直接编辑.ini的配置文件。怕虚拟机从本地启动,就建一个无硬盘的虚拟机,只用于pxe测试。
回复

使用道具 举报

3756#
发表于 2025-8-12 16:56:17 | 只看该作者
xiaoy 发表于 2025-8-11 11:52
DHCP Server for Windows最新版2.10.0   也是同样
“7月3日新版G4E,HTTP网启测试,进入菜单正常,选择网 ...

哪里有下载
回复

使用道具 举报

3755#
发表于 2025-8-12 16:52:34 | 只看该作者
它非常稳定,特别是机房很多电脑同时网启, tinypxe遇到多台同时就很容易崩溃,而这个不得,即使就用它的tftp来启动PE,速度也很好,我以前也常用tinypxe  现在用这个更多了。
回复

使用道具 举报

3754#
 楼主| 发表于 2025-8-12 16:27:49 | 只看该作者
搞不定。不再费神了。
看来 dhcpsrv2.5.2 远没有 TinyPXEServer1.0.0.23 易用,好用!
回复

使用道具 举报

3753#
发表于 2025-8-12 15:12:56 | 只看该作者
启动文件就放在ROOT指定的目录下,如 ROOT=G:\   那IPXE.EFI就在g根目录下
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2025-8-22 02:20

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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