无忧启动论坛

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

[发布] 自适应代理DHCP/DHCP、BIOS/UEFI、HTTP/TFTP能方便地启动多个PE的iPXE菜单示例!

  [复制链接]
31#
发表于 2025-9-11 07:40:08 | 只看该作者
本帖最后由 mygamexxx 于 2025-9-11 07:44 编辑

不用TFTP,直接用HTTP却都是通的。用的是与PXE同一个脚本。

wechat_2025-09-11_073851_493.png (51.72 KB, 下载次数: 1)

wechat_2025-09-11_073851_493.png

wechat_2025-09-11_074401_736.png (27.59 KB, 下载次数: 0)

wechat_2025-09-11_074401_736.png
回复

使用道具 举报

32#
发表于 2025-9-11 08:04:21 | 只看该作者
本帖最后由 mygamexxx 于 2025-9-11 08:08 编辑

使用命令行的EWSHTTP服务器,hanWIN DHCP Server. 都在这一句:
kernel ${protocol}://${booturl}/boot/wimboot_ipxe ${wimbootcmd} gui || goto switch_protocol #第一个文件都取不成功,肯定http走不起了,换tftp协议

wechat_2025-09-11_080219_289.png (116.41 KB, 下载次数: 3)

wechat_2025-09-11_080219_289.png

wechat_2025-09-11_080210_384.png (2.36 KB, 下载次数: 0)

wechat_2025-09-11_080210_384.png

wechat_2025-09-11_080101_558.png (40.1 KB, 下载次数: 1)

wechat_2025-09-11_080101_558.png
回复

使用道具 举报

33#
发表于 2025-9-11 08:13:20 | 只看该作者
本帖最后由 mygamexxx 于 2025-9-11 08:14 编辑

按单纯HTTP来看,又没有一点问题。

wechat_2025-09-11_081012_091.png (99.19 KB, 下载次数: 1)

wechat_2025-09-11_081012_091.png

wechat_2025-09-11_081205_876.png (488.93 KB, 下载次数: 1)

wechat_2025-09-11_081205_876.png
回复

使用道具 举报

34#
发表于 2025-9-11 08:37:18 | 只看该作者
谢谢分享
回复

使用道具 举报

35#
发表于 2025-9-11 12:18:10 | 只看该作者
本帖最后由 mygamexxx 于 2025-9-11 13:13 编辑

为了搞清问题,使用了最简脚本,设定HTTP模式。无论是DHCP模式还是代理模式均出问题,能出菜单,默认选项,还是出错,如图:3.png。
怀疑网关对TFTP有限制?因为不用TFTP,直接HTTP顺利启动到PE桌面,如图:直接HTTP.png。

#!ipxe
ifopen net0
ifstat
dhcp
set protocol http    #初始化协议变量,走http
isset ${proxydhcp/next-server} && set booturl ${proxydhcp/next-server} || set booturl ${next-server} #有代理dhcp信息就直接取值,智能获取启动ip

:start
    menu iPXE Boot Menu BootServer--${protocol}://${booturl}
    item --key 1 winpe   1.Boot WinPE 64 (wimboot)
    item --key 5 reboot  5.Reboot computer
    choose --timeout 5000 selected
    goto ${selected}
:reboot
    reboot
:winpe
    kernel ${protocol}://${booturl}/boot/wimboot_ipxe ${wimbootcmd} gui
#前后文件名称不相同时,要加 -n 参数,同时两个文件先后顺序不一样。
    iseq ${platform} efi && initrd -n bootx64.efi ${protocol}://${booturl}/bootmgfw.efi || ##不加 -n 参数没有影响,名称首先用bootx64.efi(安全启动必须用bootx64.efi名称),bootmgfw.efi好像也可。
    initrd -n bcd ${protocol}://${booturl}/boot/bcdpxe ||  ##两个文件名称不一样,不加 -n 参数,在BCD加载出错。
    initrd -n boot.sdi ${protocol}://${booturl}/boot/boot.sdi ||  ##两个文件名称一样,不加 -n 参数没有影响。
    initrd ${protocol}://${booturl}/boot/boot.wim boot.wim
    imgstat && sleep 10
    boot

3.png (1.69 KB, 下载次数: 0)

3.png

直接HTTP.png (657.24 KB, 下载次数: 0)

直接HTTP.png

点评

终于解决HTTP的问题,只是在脚本前加了一个加载背景图的语句后,HTTP神奇地可以了。 console --picture /boot/background.png  详情 回复 发表于 5 天前
回复

使用道具 举报

36#
发表于 6 天前 | 只看该作者
尽是干货,谢谢分享
回复

使用道具 举报

37#
发表于 5 天前 | 只看该作者
本帖最后由 mygamexxx 于 2025-9-17 10:38 编辑
mygamexxx 发表于 2025-9-11 12:18
为了搞清问题,使用了最简脚本,设定HTTP模式。无论是DHCP模式还是代理模式均出问题,能出菜单,默认选项, ...

终于解决HTTP的问题,只是在脚本前加了一个加载背景图的语句后,HTTP神奇地可以了。
console --picture /boot/background.png

测试后发现,在DHCP模式下可行,在代理模式下找不到背景图。

点评

好好加文件名到菜单就行了,为啥非得把名称改来改去,  详情 回复 发表于 5 天前
回复

使用道具 举报

38#
 楼主| 发表于 5 天前 来自手机 | 只看该作者
mygamexxx 发表于 2025-9-17 08:58
终于解决HTTP的问题,只是在脚本前加了一个加载背景图的语句后,HTTP神奇地可以了。
console --picture  ...

好好加文件名到菜单就行了,为啥非得把名称改来改去,

点评

将VMware网络模式改为仅主机模式后,HTTP的问题消失了。  详情 回复 发表于 5 天前
文件名称改动是为了适应很多情况,G4E,ipxe,本地启动与PXE启动。个人需求吧。  详情 回复 发表于 5 天前
回复

使用道具 举报

39#
发表于 5 天前 | 只看该作者
本帖最后由 mygamexxx 于 2025-9-17 09:50 编辑
江南一根葱 发表于 2025-9-17 09:12
好好加文件名到菜单就行了,为啥非得把名称改来改去,

文件名称改动是为了适应很多情况,G4E,ipxe,本地启动与PXE启动。个人需求吧。
WIMBOOT改名是因为G4E用的是修改版,IPXE用的是官方版。
BCD改名是因为PXE启动与本地启动要用不同名称来区分。
都在同一目录下。

回复

使用道具 举报

40#
发表于 5 天前 | 只看该作者
本帖最后由 mygamexxx 于 2025-9-17 13:55 编辑
江南一根葱 发表于 2025-9-17 09:12
好好加文件名到菜单就行了,为啥非得把名称改来改去,

将VMware网络模式改为仅主机模式后,同样的脚本,DHCP模式的HTTP问题消失了(代理模式下问题依然存在)。
回复

使用道具 举报

41#
 楼主| 发表于 5 天前 | 只看该作者
kernel ${protocol}://${booturl}/boot/wimboot_ipxe ${wimbootcmd} gui
什么意思都不知道

点评

一楼抄的: kernel ${protocol}://${booturl}/app/wimboot/wimboot ${wimbootcmd} gui || goto switch_protocol #第一个文件都取不成功,肯定http走不起了,换tftp协议 wimboot.ipxe是IPXE用的wimboot改名的。  详情 回复 发表于 4 天前
回复

使用道具 举报

42#
发表于 4 天前 | 只看该作者
本帖最后由 mygamexxx 于 2025-9-18 08:01 编辑
江南一根葱 发表于 2025-9-17 17:50
kernel ${protocol}://${booturl}/boot/wimboot_ipxe ${wimbootcmd} gui
什么意思都不知道

一楼抄的:
kernel ${protocol}://${booturl}/app/wimboot/wimboot ${wimbootcmd} gui || goto switch_protocol #第一个文件都取不成功,肯定http走不起了,换tftp协议

wimboot_ipxe是IPXE用的wimboot改名的,与G4E用的wimboot区分一下。
已经试过,将wimboot_ipxe名称改回wimboot,还是一样的情况。

点评

那是我忘了删,本来这个是二级菜单  详情 回复 发表于 4 天前
不清楚你咋架的服务端  详情 回复 发表于 4 天前
回复

使用道具 举报

43#
 楼主| 发表于 4 天前 来自手机 | 只看该作者
mygamexxx 发表于 2025-9-18 07:55
一楼抄的:
kernel ${protocol}://${booturl}/app/wimboot/wimboot ${wimbootcmd} gui || goto switch_p ...

不清楚你咋架的服务端

点评

如图  详情 回复 发表于 4 天前
回复

使用道具 举报

44#
发表于 4 天前 | 只看该作者
江南一根葱 发表于 2025-9-18 09:02
不清楚你咋架的服务端

如图

wechat_2025-09-18_090422_350.png (24.49 KB, 下载次数: 0)

wechat_2025-09-18_090422_350.png

点评

一看就有问题,参考ipxefm批处理, tinypxe不支持它ui上操作,很多问题  详情 回复 发表于 4 天前
回复

使用道具 举报

45#
 楼主| 发表于 4 天前 来自手机 | 只看该作者
mygamexxx 发表于 2025-9-18 09:05
如图

一看就有问题,参考ipxefm批处理,
tinypxe不支持它ui上操作,很多问题
回复

使用道具 举报

46#
 楼主| 发表于 4 天前 来自手机 | 只看该作者
mygamexxx 发表于 2025-9-18 07:55
一楼抄的:
kernel ${protocol}://${booturl}/app/wimboot/wimboot ${wimbootcmd} gui || goto switch_p ...

那是我忘了删,本来这个是二级菜单

点评

改成kernel ${protocol}://${booturl}/boot/wimboot_pxe 吗?  详情 回复 发表于 4 天前
回复

使用道具 举报

47#
发表于 4 天前 | 只看该作者
感谢分享
回复

使用道具 举报

48#
发表于 4 天前 | 只看该作者
本帖最后由 mygamexxx 于 2025-9-18 09:23 编辑
江南一根葱 发表于 2025-9-18 09:12
那是我忘了删,本来这个是二级菜单

改成kernel ${protocol}://${booturl}/boot/wimboot_pxe 吗?改了后好像没有变化。
回复

使用道具 举报

49#
发表于 4 天前 | 只看该作者
顶一个看看
回复

使用道具 举报

50#
发表于 前天 23:03 来自手机 | 只看该作者
看着深奥的 支持
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2025-9-22 01:20

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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