本帖最后由 江南一根葱 于 2025-9-18 11:55 编辑  
 
                                      本贴由AI生成,但代码是亲自部署 
🚀 我的 iPXE 智能启动菜单——比你想象的更狠这份 iPXE 脚本,不是普通的 PXE 菜单,它有几个硬核优点: 智能协议切换(HTTP ↔ TFTP)  
自动识别 DHCP/代理DHCP  
极简但高效的菜单设计  
choose 菜单超长超稳,默认项是常用的 PE。 快捷键直达:1 就是新蜂 PE,2 就是迷你 PE,效率拉满。 额外还内置 config / shell / reboot / poweroff,全场景全覆盖。 
👉 不仅能启动,还能维护、调试、救急。  
 跨 BIOS & UEFI 双平台  
错误兜底机制  
 - #!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! switch_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  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, 下载次数: 62)
 
20250905 19点前下载的都有bug,传统bios无法启动,现在已修复  
 |