无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
楼主: 江南一根葱
打印 上一主题 下一主题

[发布] [史上最伟大网管]自主研发!支持HTTP,适应BIOS/UEFI环境! NBpxe网启服务器(0910群控)

    [复制链接]
181#
发表于 2025-9-2 11:05:44 | 只看该作者
本帖最后由 mygamexxx 于 2025-9-2 11:26 编辑

WINDOWS10   64位专业版
回复

使用道具 举报

182#
发表于 2025-9-2 11:42:09 | 只看该作者
谢谢分享。。
回复

使用道具 举报

183#
 楼主| 发表于 2025-9-2 13:17:42 | 只看该作者
估计是调整blksize的问题,我叫ai再改改
回复

使用道具 举报

184#
发表于 2025-9-2 15:15:27 | 只看该作者
利害了,虽然看不懂。
回复

使用道具 举报

185#
 楼主| 发表于 2025-9-2 21:20:33 | 只看该作者
2011yaya2007777 发表于 2025-9-1 12:38
与网起G4E正相反,HTTP通,TFTP不通。

我用支持了proxydhcp模式的grubfm测试,能识别到代理模式下的tftp服务器

这是同样proxydhcp模式的g4e,识别不到


回复

使用道具 举报

186#
 楼主| 发表于 2025-9-2 22:09:23 | 只看该作者
20250902更新
  • dhcp/proxydhcp启动核心让AI参考dnsmasq项目重新构建
  • PXEMenu全面启用,传统bios和uefi环境(特别是安全启动也无错支持!!)实现和dnsmasq一样强大功能
  • 加入其它dhcp服务器探测,探测到后警告信息提示,依法网启人人有责

点评

用IPXE.EFI现在两种模式都能进入TFTP。 发现DHCP模式下也存在{proxydhcp/next-server},与{next-server}一致,IP地址都为192.168.220.1。导致判断是否存在代理的语句失效:isset ${proxydhcp/next-server} && ...  详情 回复 发表于 2025-9-3 08:20
回复

使用道具 举报

187#
发表于 2025-9-3 08:20:30 | 只看该作者
本帖最后由 mygamexxx 于 2025-9-3 08:32 编辑
江南一根葱 发表于 2025-9-2 22:09
20250902更新
dhcp/proxydhcp启动核心让AI参考dnsmasq项目重新构建

用IPXE.EFI现在两种模式都能进入TFTP(见图)。{next-server}均使用的是{proxydhcp/next-server}。
发现DHCP模式下也存在{proxydhcp/next-server},与{next-server}一致,IP地址都为192.168.220.1。导致判断是否存在代理的语句失效:isset ${proxydhcp/next-server} && ... 。
PROXY模式下,{proxydhcp/next-server}IP地址为192.168.220.1,{next-server}IP地址为192.168.220.254。
chain http://${proxydhcp/next-server}/menu.ipxe,或chain http://${next-server}/menu.ipxe,均连接超时,无法进入HTTP。

注释掉代理判断语句,使用{next-server},用IPXE.EFI在DHCP模式能进入TFTP。PROXY模式不能进入TFTP,/menu.ipxe超时。
chain http://${proxydhcp/next-server}/menu.ipxe,或chain http://${next-server}/menu.ipxe,连接超时,无法进入HTTP。

DHCP1.png (3.84 KB, 下载次数: 18)

DHCP1.png

DHCP2.png (21.56 KB, 下载次数: 12)

DHCP2.png

PROXY1.png (3.75 KB, 下载次数: 12)

PROXY1.png

PROXY2.png (21.39 KB, 下载次数: 10)

PROXY2.png

PROXY3.png (6.56 KB, 下载次数: 10)

PROXY3.png
回复

使用道具 举报

188#
 楼主| 发表于 2025-9-3 09:00:29 来自手机 | 只看该作者
只要可以读脚本文件,就可以chain /xxx,不需要这么折腾

点评

主要是要HTTP与TFTP自适应,所以搞成这样。  详情 回复 发表于 2025-9-3 09:08
回复

使用道具 举报

189#
发表于 2025-9-3 09:08:39 | 只看该作者
本帖最后由 mygamexxx 于 2025-9-3 09:10 编辑
江南一根葱 发表于 2025-9-3 09:00
只要可以读脚本文件,就可以chain /xxx,不需要这么折腾

主要是要HTTP与TFTP自适应,所以搞成这样。因为加载大文件时HTTP快。所以要判断HTTP是否能通,HTTP不通就走TFTP。
回复

使用道具 举报

190#
发表于 2025-9-3 09:10:32 | 只看该作者
感谢分享
回复

使用道具 举报

191#
发表于 2025-9-3 09:20:59 来自手机 | 只看该作者
菜单类型8000 ,8001,8002,8003是什么意思?怎么定义的?

点评

四位数就行,写的编号  详情 回复 发表于 2025-9-3 09:49
回复

使用道具 举报

192#
 楼主| 发表于 2025-9-3 09:49:09 来自手机 | 只看该作者
2011yaya2007777 发表于 2025-9-3 09:20
菜单类型8000 ,8001,8002,8003是什么意思?怎么定义的?

四位数就行,写的编号
回复

使用道具 举报

193#
发表于 2025-9-3 12:02:50 | 只看该作者
本帖最后由 mygamexxx 于 2025-9-3 12:25 编辑

上午测试后,VMware突然莫明其妙的用所有PXE服务器都无法PXE网启了。重启物理机,重建虚拟机、删除虚拟机临时文件都解决不了。
重新运行NBpxeServer,出现错误信息,关闭,再重新运行NBpxeServer,不再出现错误信息,PXE网启恢复。
回复

使用道具 举报

194#
发表于 2025-9-3 12:58:30 | 只看该作者
本帖最后由 mygamexxx 于 2025-9-3 13:06 编辑

除了比TINYPXE多了DHCP模式下的PROXYDHCP项,其他基本一致了。

wechat_2025-09-03_125635_514.png (20.73 KB, 下载次数: 7)

wechat_2025-09-03_125635_514.png
回复

使用道具 举报

195#
发表于 2025-9-3 13:20:44 | 只看该作者
本帖最后由 mygamexxx 于 2025-9-3 13:31 编辑

NBPXE必须停止所有服务后再退出,不停止所有服务直接关闭可能对后续PXE有影响!

现在只剩下一个问题,HTTP不通。ipxe脚本如下(TINPXE两种模式均能HTTP,NBPXE两种模式只能TFTP):
#!ipxe
ifopen net0
ifstat
#判断是否存在DHCP代理,如果存在代理,使用代理next-server地址
isset ${proxydhcp/next-server} && set next-server ${proxydhcp/next-server}
#为menu.ipxe指定参数
#默认参数为通过HTTP网启
set s_boot http://${next-server}
#判断HTTP服务器是否开启,如果未开启,转为TFTP网启
chain http://${next-server}/menu.ipxe && echo HTTP_ON || set s_boot tftp://${next-server} && echo HTTP_OFF
sleep 20
chain /menu.ipxe

pxe
e





wechat_2025-09-03_132357_943.png (6.39 KB, 下载次数: 9)

wechat_2025-09-03_132357_943.png
回复

使用道具 举报

196#
发表于 2025-9-3 13:38:32 | 只看该作者
本帖最后由 mygamexxx 于 2025-9-3 13:48 编辑

第二次出现NBPXE运行关闭后,用所有PXE服务器无法网启的现象。以前除了TINYPXE有此现象,其他没有,不知道是不是巧合。
怀疑是代理模式会影响DHCP,而且会持续一定时间(估计5~10分钟)。因为只有这两个有代理模式。

wechat_2025-09-03_134507_982.png (26.43 KB, 下载次数: 9)

wechat_2025-09-03_134507_982.png

点评

dhcp有ip租约时间的关系吧  详情 回复 发表于 2025-9-3 14:29
回复

使用道具 举报

197#
 楼主| 发表于 2025-9-3 14:29:11 来自手机 | 只看该作者
mygamexxx 发表于 2025-9-3 13:38
第二次出现NBPXE运行关闭后,用所有PXE服务器无法网启的现象。以前除了TINYPXE有此现象,其他没有,不知道 ...

dhcp有ip租约时间的关系吧

点评

算了,可能测试的影响因素太多,DHCP\TFTP\HTTP,总有一个不顺。目前又好像没有问题。  详情 回复 发表于 2025-9-3 15:33
回复

使用道具 举报

198#
发表于 2025-9-3 15:33:50 | 只看该作者
本帖最后由 mygamexxx 于 2025-9-3 16:07 编辑
江南一根葱 发表于 2025-9-3 14:29
dhcp有ip租约时间的关系吧

算了,可能测试的影响因素太多,DHCP\TFTP\HTTP,总有一个不顺。目前又好像没有问题。
DHCP模式,G4E能HTTP顺利至PE桌面,IPXE.EFI在HTTP顺利加载完BOOT.WIM后又出错,返回BOOT MANAGER。
代理模式,G4E找不到菜单文件menu.lst,IPXE.EFI在chain /menu.ipxe时超时。代理模式可能涉及TFTP的服务器IP地址变了,HTTP的服务器IP地址又不对了。
回复

使用道具 举报

199#
发表于 2025-9-3 16:13:33 | 只看该作者
本帖最后由 mygamexxx 于 2025-9-3 16:52 编辑

TINGPXE与NBPXE类似,IPXE.EFI在代理模式下HTTP用{proxydhcp/next-server}与{next-server}都出错。
HTTP老老实实用DHCP模式。不去折腾了。

点评

http一直没问题,你代码乱写的原因,  详情 回复 发表于 2025-9-3 20:10
回复

使用道具 举报

200#
 楼主| 发表于 2025-9-3 20:10:20 | 只看该作者
本帖最后由 江南一根葱 于 2025-9-3 20:12 编辑
mygamexxx 发表于 2025-9-3 16:13
TINGPXE与NBPXE类似,IPXE.EFI在代理模式下HTTP用{proxydhcp/next-server}与{next-server}都出错。
HTTP老 ...

http一直没问题,你代码乱写的原因,proxydhcp模式下,next-server是dhcp给的,proxydhcp下的next-server当booturl就行了

点评

葱大是不是能指导一下autoexec.ipxe的脚本?引导下一脚本menu.ipxe,这个脚本只要autoexec.ipxe提供基本环境和s_boot变量(值为http://{next-server}),使menu.ipxe顺利HTTP启动PE。  详情 回复 发表于 2025-9-3 21:37
回复

使用道具 举报

201#
发表于 2025-9-3 20:29:11 | 只看该作者
太给力了!必须赞!!
回复

使用道具 举报

202#
发表于 2025-9-3 21:37:26 | 只看该作者
本帖最后由 mygamexxx 于 2025-9-3 21:41 编辑
江南一根葱 发表于 2025-9-3 20:10
http一直没问题,你代码乱写的原因,proxydhcp模式下,next-server是dhcp给的,proxydhcp下的next-server ...

葱大是不是能指导一下autoexec.ipxe的脚本?引导下一脚本menu.ipxe,menu.ipxe脚本只要autoexec.ipxe提供基本环境和s_boot变量(值为http://{next-server}类型),使menu.ipxe顺利HTTP启动PE(wimboot方式启动的)。s_boot变量值若为tftp://{next-server}类型,就是TFTP启动PE(wimboot方式启动的)。

点评

哪里需要这么复杂 proxydhcp里有next-server就一定优先设置到booturl 没有就取dhcp的  详情 回复 发表于 2025-9-3 22:42
回复

使用道具 举报

203#
 楼主| 发表于 2025-9-3 22:28:35 | 只看该作者
20250903更新
  • 加入DHCP自定义选项功能,超级多的模块,包括直接让ipxe从其它http启动的模板,无须写菜单!!
  • 加入客户机PXE菜单超时时间随机分配功能,可以多台机启动分配不同的超时,缓解同时访问服务器造成的巨大压力!


回复

使用道具 举报

204#
 楼主| 发表于 2025-9-3 22:42:35 来自手机 | 只看该作者
mygamexxx 发表于 2025-9-3 21:37
葱大是不是能指导一下autoexec.ipxe的脚本?引导下一脚本menu.ipxe,menu.ipxe脚本只要autoexec.ipxe提供 ...

哪里需要这么复杂
proxydhcp里有next-server就一定优先设置到booturl
没有就取dhcp的

点评

请葱大指点一下,合并了两个脚本: #!ipxe ifopen net0 ifstat set quiet 1 #静默启动,1打开,注释掉不打开 ################################## #判断是否存在DHCP代理,如果存在代理,使用代理next-server  详情 回复 发表于 2025-9-4 07:52
回复

使用道具 举报

205#
发表于 2025-9-4 07:52:47 | 只看该作者
本帖最后由 mygamexxx 于 2025-9-4 13:14 编辑
江南一根葱 发表于 2025-9-3 22:42
哪里需要这么复杂
proxydhcp里有next-server就一定优先设置到booturl
没有就取dhcp的

请葱大指点一下,合并了两个脚本(肯定有哪里不对,现在TFTP读取autoexec.ipxe后显示英文成功,就到了BOOT MANAGER):
#!ipxe
ifopen net0
ifstat
set quiet 1 #静默启动,1打开,注释掉不打开
##################################
#判断是否存在DHCP代理,如果存在代理,使用代理next-server地址
set mode dhcp
isset ${proxydhcp/next-server} && set mode proxy && sleep 10 && goto proxy

:no_prxoy
#默认HTTP,不通时TFTP
#默认参数为通过HTTP网启
set s_boot http://${next-server}

#如果存在proxydhcp/next-server,判断是否DHCP真代理,如果真代理,转到:proxy
isset ${proxydhcp/next-server} && iseq ${next-server} ${proxydhcp/next-server} && set mode dhcp_proxy
isset ${proxydhcp/next-server} && iseq ${next-server} ${proxydhcp/next-server} || goto proxy
sleep 10

#判断HTTP服务器是否开启,如果未开启,转为TFTP网启
isset http://${next-server}/autoexec.ipxe || set s_boot tftp://${next-server} && echo HTTP_DHCP_OFF && sleep 10

goto menu2

:proxy
#默认TFTP,有HTTP时使用HTTP
#默认参数为通过TFTP网启
set s_boot tftp://${proxydhcp/next-server}
#判断HTTP服务器是否开启,如果未开启,转为TFTP网启
isset http://${proxydhcp/next-server}/autoexec.ipxe && set s_boot http://${proxydhcp/next-server} && echo HTTP_proxy_ON && sleep 10

##################################

:menu2

    isset ${ip} || dhcp
:start
    menu iPXE Boot Menu --${s_boot}-${mode}
    item --key 1 winpe   1.Boot WinPE 64 (wimboot)
    item --key 2 local   2.Boot from local drive
    item --key 3 config  3.Configure settings
    item --key 4 shell   4.Drop to iPXE shell
    item --key 5 reboot  5.Reboot computer
    item --key 6 exit    6.Exit iPXE and continue BIOS boot
    choose --timeout 10000 selected
    goto ${selected}
:shell
    echo Type 'exit' to get the back to the menu
    shell
    goto start
:reboot
    reboot
:exit
    exit
:config
    config
    goto start
:winpe
    iseq ${platform} efi && set wbm bootmgfw.efi || set wbm bootmgr.exe
#    kernel ${s_boot}/boot/wimboot
    initrd ${s_boot}/boot/${wbm}    ${wbm}
    initrd ${s_boot}/boot/bcdpxe       bcd
    initrd ${s_boot}/boot/boot.sdi  boot.sdi
    initrd ${s_boot}/boot/boot.wim  boot.wim
    boot ${s_boot}/boot/wimboot
#从本地硬盘启动
:local
    sanboot --no-describe --drive 0x80
:retry
    imgfree
    prompt Error! press any key to back menu
    goto start
pxe
e


点评

你这个需求我新发了个贴,照逻辑来吧  详情 回复 发表于 7 天前
回复

使用道具 举报

206#
发表于 2025-9-4 16:39:13 | 只看该作者
感谢分享
回复

使用道具 举报

207#
发表于 2025-9-4 18:52:12 | 只看该作者
大佬  不支持安全启动是需要我单独设置什么吗

点评

安全启动在菜单添加bootmgfw.efi项就行了  详情 回复 发表于 2025-9-4 19:03
回复

使用道具 举报

208#
 楼主| 发表于 2025-9-4 19:03:40 | 只看该作者
w251728 发表于 2025-9-4 18:52
大佬  不支持安全启动是需要我单独设置什么吗

安全启动在菜单添加bootmgfw.efi项就行了
回复

使用道具 举报

209#
发表于 2025-9-4 21:52:26 | 只看该作者
谢谢分享
回复

使用道具 举报

210#
发表于 2025-9-4 22:40:10 | 只看该作者
本帖最后由 mygamexxx 于 2025-9-5 00:24 编辑

反复试验,IPXE的脚本中用&&,往往是有问题的。会显示英文的成功,但后续会进入BOOT MANAGER。


以下autoexec.ipxee脚本每一步都验证过了,menu.ipxe验证过没问题的,除了标红的有问题(主要是HTTP是否开启的判断问题):
#!ipxe
#ifopen net0
#ifstat
#set quiet 1 #静默启动,1打开,注释掉不打开
##################################
#判断模式mode是DHCP、NB_DHCP、代理DHCP_PROXY
isset ${proxydhcp/next-server} || set mode DHCP
isset ${proxydhcp/next-server} || goto next1_OK
iseq ${next-server} ${proxydhcp/next-server} || set mode DHCP_PROXY
iseq ${next-server} ${proxydhcp/next-server} || goto next1_OK
set mode NB_DHCP
:next1_OK

#默认参数为通过HTTP网启

iseq ${mode} DHCP_PROXY || set booturl ${next-server}
iseq ${mode} DHCP_PROXY || goto next2_OK
#set booturl ${next-server}
set booturl ${proxydhcp/next-server}

:next2_OK
set s_boot http://${booturl}
#判断HTTP服务器是否开启,如果未开启,转为TFTP网启
chain http://${booturl}/menu.ipxe || set s_boot ${cwduri}

goto menu2

##################################
:menu2
chain http://${booturl}/menu.ipxe
chain /menu.ipxe

pxe
e

回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2025-9-12 02:21

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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