无忧启动论坛

 找回密码
 注册
搜索

碰到IPXE启动很奇怪的问题,原因是wimboot没有使用官方的版本。

查看数: 673 | 评论数: 19 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2025-9-9 21:20

正文摘要:

本帖最后由 mygamexxx 于 2025-9-11 13:49 编辑 HTTP服务器开启,QEMU从光盘映像启动IPXE,脚本指向HTTP服务器根目录下的autoexec.ipxe。 使用IPXE启动WIN10PE,出现问题,看看BCD好像也没问题,不知道是什么原 ...

回复

mygamexxx 发表于 1 小时前
本帖最后由 mygamexxx 于 2025-9-11 13:11 编辑

发现IPXE脚本 -n 参数是有用的,能解决一些问题。
#!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


tanglf 发表于 5 小时前
mygamexxx 发表于 2025-9-10 08:25
HTTP服务器,QEMU从光盘映像启动IPXE,脚本指向HTTP服务器根目录下的autoexec.ipxe.

谢谢,回复!
mygamexxx 发表于 6 小时前
BIOS还是不行,难道ipxe的wimboot分UEFI与BIOS两个版本?
mygamexxx 发表于 昨天 19:04
本帖最后由 mygamexxx 于 2025-9-10 19:11 编辑
江南一根葱 发表于 2025-9-10 18:48
ipxe要去官方网站学习,ipxe.org

网站上的示例太简单,已经把所有命令介绍下载并翻译了。出错提示,往往介绍源代码哪里可能有问题,我又看不懂源代码,只好乱试。
江南一根葱 发表于 昨天 18:48
mygamexxx 发表于 2025-9-10 18:40
到无忧就是学习,原来IPXE启动PE的脚本是liuzhaoyzz大写的模板,新的模板是葱大您写的,只是在HTTP传输总 ...

ipxe要去官方网站学习,ipxe.org

点评

网站上的示例太简单,已经把所有命令介绍下载并翻译了  详情 回复 发表于 昨天 19:04
mygamexxx 发表于 昨天 18:40
本帖最后由 mygamexxx 于 2025-9-10 18:45 编辑
江南一根葱 发表于 2025-9-10 15:05
模板都写好了,为啥要乱改文件

到无忧就是学习,原来IPXE启动PE的脚本是liuzhaoyzz大写的模板,新的模板是葱大您写的,只是在HTTP传输总是出错,我估计是HTTP服务器的原因。所以在网上找相同的问题,看到有关-n参数的说法,所以自己尝试改,看看能不能解决问题。通过不停的改和试,也慢慢理解了模板的意义。

职业习惯,有问题就尝试着改。也明白了脚本没问题,只是HTTP服务可能会因为时间长拒绝连接。现在只用HTTP服务器,不用TFTP服务,在UEFI下QEMU启动都是正常的。想不通原因而已。PXE方式与单纯HTTP方式使用的是同一个脚本。

点评

ipxe要去官方网站学习,ipxe.org  详情 回复 发表于 昨天 18:48
201287zr 发表于 昨天 16:53
mygamexxx 发表于 2025-9-10 09:19
请教一下,下面注释掉的两行与未注释的两行(加-n参数)是不是效果一样?运行后好像效果一样。
initrd -n BC ...

我以前也测试过,也感到很困惑。好像-n是用于将文件在虚拟盘中时行重命名,一般用于对bootmgr或BCD有改动的文件。我感觉好像是UEFI必须得用-n来重命令引导文件,BIOS似乎又不用-n参数。
江南一根葱 发表于 昨天 15:05
模板都写好了,为啥要乱改文件

点评

到无忧就是学习,原来IPXE启动PE的脚本是liuzhaoyzz大写的模板,新的模板是葱大您写的,只是在HTTP传输总是出错,我估计是HTTP服务器的原因。所以在网上找相同的问题,看到有关-n参数的说法,所以自己尝试改,看看能  详情 回复 发表于 昨天 18:40
guong 发表于 昨天 13:49
来了解一下
肉仔 发表于 昨天 11:27
来看看
mygamexxx 发表于 昨天 08:25
tanglf 发表于 2025-9-10 08:23
ipex 启动是何场景

HTTP服务器,QEMU从光盘映像启动IPXE,脚本指向HTTP服务器根目录下的autoexec.ipxe.

点评

谢谢,回复!  详情 回复 发表于 5 小时前
tanglf 发表于 昨天 08:23
ipex 启动是何场景

点评

HTTP服务器,QEMU从光盘映像启动,指向HTTP服务器根目录下的autoexec.ipxe.  详情 回复 发表于 昨天 08:25
mygamexxx 发表于 昨天 08:21
本帖最后由 mygamexxx 于 2025-9-10 09:36 编辑

找到两个相类似问题:
https://kkgithub.com/ipxe/ipxe/issues/1422
https://forum.ipxe.org/showthread.php?tid=7436
第一个中提到用1.0.0版本的IPXE是启动成功的。
第二个中提到initrd -n参数,加了好像也没卵用(加了 -n 参数,命令的文件名称要前后换一下)。


dksoft 发表于 昨天 08:16
进来学习
邪恶海盗 发表于 前天 23:31
TinyPXEServer 云端网络启动小试,适用于BIOS/UEFI (请允许我标题一回) By:邪恶海盗
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=419305
江南一根葱 发表于 前天 21:56
很奇怪,wimboot根本不需要去修改什么BCD文件

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

闽公网安备 35020302032614号

GMT+8, 2025-9-11 14:23

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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