无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 691|回复: 20
打印 上一主题 下一主题

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

[复制链接]
跳转到指定楼层
1#
发表于 前天 21:20 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 mygamexxx 于 2025-9-11 13:49 编辑

HTTP服务器开启,QEMU从光盘映像启动IPXE,脚本指向HTTP服务器根目录下的autoexec.ipxe。
使用IPXE启动WIN10PE,出现问题,看看BCD好像也没问题,不知道是什么原因。
已找到原因,是wimboot没有使用官方版本(IPXE与GRUB2的wimboot混淆了)。UEFI已经没问题,但BIOS还是有问题。initrd -n 用于名称不一样时,相当于重命名。用于GRUB2或G4E的wintoflash大的修改版,没有这个问题,但不能用于IPXE。
#!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


BIOS.png (6.76 KB, 下载次数: 0)

BIOS.png

UEFI.png (8.77 KB, 下载次数: 2)

UEFI.png

BCD.png (116.1 KB, 下载次数: 4)

BCD.png
2#
发表于 前天 21:56 | 只看该作者
很奇怪,wimboot根本不需要去修改什么BCD文件
回复

使用道具 举报

3#
发表于 前天 23:31 | 只看该作者
TinyPXEServer 云端网络启动小试,适用于BIOS/UEFI (请允许我标题一回) By:邪恶海盗
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=419305
回复

使用道具 举报

4#
 楼主| 发表于 昨天 08:09 | 只看该作者
传输好像什么都正确,但就是启动出错:Bad CPIO magic。

BIOS.png (127.9 KB, 下载次数: 1)

BIOS.png

UEFI.png (93.07 KB, 下载次数: 0)

UEFI.png
回复

使用道具 举报

5#
发表于 昨天 08:16 | 只看该作者
进来学习
回复

使用道具 举报

6#
 楼主| 发表于 昨天 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 参数,命令的文件名称要前后换一下)。


回复

使用道具 举报

7#
发表于 昨天 08:23 | 只看该作者
ipex 启动是何场景

点评

HTTP服务器,QEMU从光盘映像启动,指向HTTP服务器根目录下的autoexec.ipxe.  详情 回复 发表于 昨天 08:25
回复

使用道具 举报

8#
 楼主| 发表于 昨天 08:25 | 只看该作者
tanglf 发表于 2025-9-10 08:23
ipex 启动是何场景

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

点评

谢谢,回复!  详情 回复 发表于 9 小时前
回复

使用道具 举报

9#
 楼主| 发表于 昨天 09:19 | 只看该作者
本帖最后由 mygamexxx 于 2025-9-10 09:38 编辑

请教一下,下面注释掉的两行与未注释的两行(加-n参数)是不是效果一样?运行后好像效果一样。
initrd -n BCD ${protocol}://${booturl}/boot/bcdpxe ||
initrd -n boot.sdi ${protocol}://${booturl}/boot/boot.sdi ||
# initrd ${protocol}://${booturl}/boot/bcdpxe  BCD ||
# initrd ${protocol}://${booturl}/boot/boot.sdi boot.sdi ||
在脚本中加imgstat && sleep 20
显示如图:


wechat_2025-09-10_093803_603.png (4.4 KB, 下载次数: 1)

wechat_2025-09-10_093803_603.png

点评

我以前也测试过,也感到很困惑。好像-n是用于将文件在虚拟盘中时行重命名,一般用于对bootmgr或BCD有改动的文件。我感觉好像是UEFI必须得用-n来重命令引导文件,BIOS似乎又不用-n参数。  详情 回复 发表于 昨天 16:53
回复

使用道具 举报

10#
发表于 昨天 11:27 | 只看该作者
来看看
回复

使用道具 举报

11#
发表于 昨天 13:49 | 只看该作者
来了解一下
回复

使用道具 举报

12#
发表于 昨天 15:05 来自手机 | 只看该作者
模板都写好了,为啥要乱改文件

点评

到无忧就是学习,原来IPXE启动PE的脚本是liuzhaoyzz大写的模板,新的模板是葱大您写的,只是在HTTP传输总是出错,我估计是HTTP服务器的原因。所以在网上找相同的问题,看到有关-n参数的说法,所以自己尝试改,看看能  详情 回复 发表于 昨天 18:40
回复

使用道具 举报

13#
发表于 昨天 16:53 | 只看该作者
mygamexxx 发表于 2025-9-10 09:19
请教一下,下面注释掉的两行与未注释的两行(加-n参数)是不是效果一样?运行后好像效果一样。
initrd -n BC ...

我以前也测试过,也感到很困惑。好像-n是用于将文件在虚拟盘中时行重命名,一般用于对bootmgr或BCD有改动的文件。我感觉好像是UEFI必须得用-n来重命令引导文件,BIOS似乎又不用-n参数。
回复

使用道具 举报

14#
 楼主| 发表于 昨天 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
回复

使用道具 举报

15#
发表于 昨天 18:48 | 只看该作者
mygamexxx 发表于 2025-9-10 18:40
到无忧就是学习,原来IPXE启动PE的脚本是liuzhaoyzz大写的模板,新的模板是葱大您写的,只是在HTTP传输总 ...

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

点评

网站上的示例太简单,已经把所有命令介绍下载并翻译了  详情 回复 发表于 昨天 19:04
回复

使用道具 举报

16#
 楼主| 发表于 昨天 19:04 | 只看该作者
本帖最后由 mygamexxx 于 2025-9-10 19:11 编辑
江南一根葱 发表于 2025-9-10 18:48
ipxe要去官方网站学习,ipxe.org

网站上的示例太简单,已经把所有命令介绍下载并翻译了。出错提示,往往介绍源代码哪里可能有问题,我又看不懂源代码,只好乱试。
回复

使用道具 举报

17#
 楼主| 发表于 9 小时前 | 只看该作者
BIOS还是不行,难道ipxe的wimboot分UEFI与BIOS两个版本?
回复

使用道具 举报

18#
 楼主| 发表于 9 小时前 | 只看该作者
本帖最后由 mygamexxx 于 2025-9-11 08:33 编辑

网上说IPXE1.0.0在BIOS下配合wimboot2.8.0是成功的. 新版ipxe配合wimboot2.8.0, 在BIOS下不成功。但找不到这个1.0.0版本在哪可以下载?

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

wechat_2025-09-11_082257_056.png

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

wechat_2025-09-11_082154_764.png
回复

使用道具 举报

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

谢谢,回复!
回复

使用道具 举报

20#
 楼主| 发表于 5 小时前 | 只看该作者
本帖最后由 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


回复

使用道具 举报

21#
发表于 2 小时前 来自手机 | 只看该作者
感谢分享
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2025-9-11 18:11

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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