无忧启动论坛
标题:
自适应代理DHCP/DHCP、BIOS/UEFI、HTTP/TFTP能方便地启动多个PE的iPXE菜单示例!
[打印本页]
作者:
江南一根葱
时间:
昨天 15:28
标题:
自适应代理DHCP/DHCP、BIOS/UEFI、HTTP/TFTP能方便地启动多个PE的iPXE菜单示例!
本帖最后由 江南一根葱 于 2025-9-6 12:28 编辑
本贴由AI生成,但代码是亲自部署
🚀 我的 iPXE 智能启动菜单——比你想象的更狠
这份 iPXE 脚本,不是普通的 PXE 菜单,它有几个硬核优点:
智能协议切换(HTTP ↔ TFTP)
默认高速 HTTP 传输,拉取大文件(比如 WinPE WIM)飞快。
如果检测到 HTTP 不通?自动无缝切换 TFTP,不用人管。
👉 稳定性 + 速度,鱼与熊掌我都要。
自动识别 DHCP/代理DHCP
支持 proxydhcp/next-server 和 next-server 双方案。
无论是标准环境,还是 WDS/代理DHCP 混合环境,都能“智能取值”。
👉 一套脚本,放到哪里都能跑。
极简但高效的菜单设计
choose 菜单超长超稳,默认项是常用的 PE。
快捷键直达:1 就是新蜂 PE,2 就是迷你 PE,效率拉满。
额外还内置 config / shell / reboot / poweroff,全场景全覆盖。
👉 不仅能启动,还能维护、调试、救急。
跨 BIOS & UEFI 双平台
自动判断 ${platform},分别加载 bootmgr 或 bootmgfw.efi。
字体、BCD、boot.sdi、bootres.dll 统统打包,EFI/BIOS 无缝兼容。
👉 不管是老机器还是新主板,一把梭。
错误兜底机制
任何一个文件取不到,直接回菜单重新选,永不死机。
菜单、协议、文件多层 fallback。
👉 出错也优雅,不会卡死黑屏。
#!ipxe
ifopen net0
ifstat
#set quiet 1 #
set protocol http #初始化协议变量,走http
isset ${proxydhcp/next-server} && set booturl ${proxydhcp/next-server} || set booturl ${next-server} #有代理dhcp信息就直接取值,智能获取启动ip
:bootmenu #启动菜单查看基本情况
menu iPXE's Boot Menu BootServer:${protocol}://${booturl}
item --gap -- Choose BootFile
item --key 1 newbeeplus.wim 2. Boot newbeepe #启动newbeepe.wim
item --key 2 mini.wim 2. Boot mini.wim #同上
item --gap -- Advanced options
item --key c config C. Configure settings
item --key s shell S. Drop to iPXE shell
item --key r reboot R. Reboot computer
item --key p poweroff P. Poweroff computer
choose --timeout 100000 --default newbeeplus.wim selected || #默认选newbeeplus.wim来启动
iseq ${selected} config && config ||
iseq ${selected} shell && shell ||
iseq ${selected} reboot && reboot ||
iseq ${selected} poweroff && poweroff ||
set bootfile ${selected} && echo bootfile:${selected} && goto wimboot #启动菜单上选中的wim文件,也就是pe ||
:switch_protocol #http不能启动?就改协议成tftp,然后继续启动
console
echo error! swich_protocol!
set protocol tftp
echo now boofile is ${protocol}://${booturl}/${bootfile}
sleep 1 && goto wimboot
:wimboot #启动菜单上选中的PE
echo ${bootfile}
kernel ${protocol}://${booturl}/app/wimboot/wimboot ${wimbootcmd} gui || goto switch_protocol #第一个文件都取不成功,肯定http走不起了,换tftp协议
iseq ${platform} pcbios && initrd ${protocol}://${booturl}/app/wimboot/bootmgr bootmgr ||
iseq ${platform} efi && initrd -n bootx64.efi ${protocol}://${booturl}/app/wimboot/bootmgfw.efi ||
initrd ${protocol}://${booturl}/app/wimboot/BCD BCD ||
initrd ${protocol}://${booturl}/app/wimboot/boot.sdi boot.sdi ||
initrd ${protocol}://${booturl}/app/wimboot/segoen_slboot.ttf segoen_slboot.ttf ||
initrd ${protocol}://${booturl}/app/wimboot/segoe_slboot.ttf segoe_slboot.ttf ||
initrd ${protocol}://${booturl}/app/wimboot/segmono_boot.ttf segmono_boot.ttf ||
initrd ${protocol}://${booturl}/app/wimboot/wgl4_boot.ttf wgl4_boot.ttf ||
initrd ${protocol}://${booturl}/app/wimboot/bootres.dll bootres.dll ||
iseq ${platform} pcbios && initrd ${protocol}://${booturl}/${bootfile} boot.wim ||
iseq ${platform} efi && initrd -n boot.wim ${protocol}://${booturl}/${bootfile} ||
boot || goto bootmenu #启到这里不成功,说明没这个wim文件,回菜单重新选另一个文件启动
复制代码
ipxeboot.txt
(2.44 KB, 下载次数: 19)
昨天 19:02
上传
点击文件名下载附件
下载积分: 无忧币 -2
20250905 19点前下载的都有bug,传统bios无法启动,现在已修复
作者:
肉仔
时间:
昨天 16:05
这个是引导系统么
作者:
奈绪
时间:
昨天 16:07
葱大,史上最伟大网管,果然名不虚传。
作者:
12qaz
时间:
昨天 16:19
感谢分享
作者:
tt911
时间:
昨天 16:45
👉 这是啥符号?都被吃了。。。
作者:
it323
时间:
昨天 17:01
感谢分享!!!
作者:
201012121135
时间:
昨天 17:08
谢谢分享
作者:
makoto23
时间:
昨天 17:14
感谢分享
作者:
小灰兔
时间:
昨天 17:23
感谢分享
作者:
wn168cn@163.com
时间:
昨天 18:31
支持原创 感谢分享
作者:
handsome_xiang
时间:
昨天 18:42
感谢分享!
作者:
江南一根葱
时间:
昨天 19:03
20250905 19点前下载的都有bug,传统bios无法启动,现在已修复
作者:
lixiangliuyi
时间:
昨天 19:25
葱大,史上最伟大网管。让人叹为观止,从此爱上装系统,
作者:
蘭蘭
时间:
昨天 20:02
谢谢分享!
作者:
wuxin9712
时间:
昨天 20:55
葱老板 又有新东西了 进来收货
作者:
2012zcsh
时间:
昨天 21:18
谢谢分享。
作者:
tingtao666
时间:
昨天 22:10
感谢分享 ! ! !
作者:
开裆裤看
时间:
19 小时前
咋用
作者:
handsome_xiang
时间:
19 小时前
感谢分享!
作者:
wang1126
时间:
13 小时前
谢谢楼主分享
作者:
rgfwqx@163.com
时间:
13 小时前
谢谢
作者:
sxp3468
时间:
8 小时前
感谢业委会分享
作者:
shikunfang
时间:
7 小时前
很是欣赏大佬的作品,这个新东西,能不能出个详细的教程怎么用呢?十分感谢
作者:
fegr
时间:
6 小时前
谢谢分享
作者:
ebaqiang
时间:
6 小时前
感谢分享
欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/)
Powered by Discuz! X3.3