无忧启动论坛

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

[已解决] BIOS下,PXE启动问题,VMware网络模式改为仅主机模式,问题解决

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

在UEFI下,用VMware进行PXE启动测试,能够顺利PXE启动。在BIOS下TFTP总是不通。用G4D、ipxe均不行。
VMware网络模式为NAT模式。
请教高手指点。

将VMware网络模式改为仅主机模式,问题解决,顺利进入IPXE菜单。
目前仅剩下BIOS下IPXE使用WIMBOOT的问题了。
Bad CPIO magic
FATAL: could not extract initrd files
BIOS与UEFI同一脚本,UEFI下没问题,autoexec.ipxe脚本如下:

#!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
prompt --key 0x02 --timeout 2000  Press Ctrl-B for the iPXE command line... ||
#console --picture http://${booturl}/boot/background.png --x 1024 --y 768 ||
console --picture /boot/background.png

:bootmenu  #启动菜单查看基本情况
    menu iPXE Boot Menu BootServer--${protocol}://${booturl}

    item --gap -- IP: ${ip}/${netmask} Mac Address:${mac}
    item --gap -- DHCP:${dhcp-server} Gateway:${gateway} DNS:${dns}
    item --gap -- next-server(proxy):${next-server}/${proxydhcp/next-server} SMBIOS UUID:${uuid}
    item --gap -- Chip:${chip} Platform:${platform} Build Arch:${buildarch} Version:${version}
    item --gap -- ====================================================================================
    item --gap -- Choose BootFile
    item --key 1 boot.wim       1.  Boot boot.wim #启动boot.wim
    item --key 2 ipxefm         2.  Boot ipxefm #启动ipxefm
    item --key 3 grub4efi       3.  Boot grub4efi #启动grub4efi


    item --gap -- Advanced options
    item --key l local          L.  Boot from local drive
    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 e exit           E.  Exit iPXE and continue BIOS boot
    item --key p poweroff       P.  Poweroff computer
    choose --timeout 10000 --default boot.wim selected || #默认选boot.wim来启动
    iseq ${selected} ipxefm && goto ipxefm ||
    iseq ${selected} grub4efi && chain ${protocol}://${booturl}/bootg4e.efi ||
    iseq ${selected} local && sanboot --no-describe --drive 0x80 ||
    iseq ${selected} config && config ||
    iseq ${selected} shell && shell ||
    iseq ${selected} reboot && reboot ||
    iseq ${selected} exit && exit ||
    iseq ${selected} poweroff && poweroff ||
    set bootfile ${selected} && echo bootfile:${selected} && goto wimboot  #启动菜单上选中的wim文件,也就是pe ||
    sleep 1 && goto wimboot

:switch_protocol #http不能启动?就改协议成tftp,然后继续启动
    console
    echo error! swich_protocol!
    set protocol tftp
    echo now boofile is ${protocol}://${booturl}/boot/${bootfile}
    sleep 1 && goto wimboot

:ipxefm
iseq ${platform} pcbios && chain ${protocol}://${booturl}/pxe/ipxefm/ipxeboot.txt ||
iseq ${platform} efi && chain ${protocol}://${booturl}/pxe/ipxefm/ipxeboot.txt ||
goto end

:wimboot #启动菜单上选中的PE
    echo ${bootfile}
    kernel ${protocol}://${booturl}/boot/wimboot.ipxe ${wimbootcmd} gui || goto switch_protocol #第一个文件都取不成功,肯定http走不起了,换tftp协议
#bootmgr.exe被压缩之后再接上一段16位程序就是bootmgr,两者不一样。
    iseq ${platform} pcbios && initrd ${protocol}://${booturl}/bootmgr.pxe bootmgr.exe ||
#前后文件名称不相同时,要加 -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/fonts/segoen_slboot.ttf segoen_slboot.ttf ||
#    initrd ${protocol}://${booturl}/boot/fonts/segoe_slboot.ttf segoe_slboot.ttf ||
#    initrd ${protocol}://${booturl}/boot/fonts/segmono_boot.ttf segmono_boot.ttf ||
#    initrd ${protocol}://${booturl}/boot/fonts/wgl4_boot.ttf wgl4_boot.ttf ||  
#    initrd ${protocol}://${booturl}/boot/resources/bootres.dll bootres.dll ||
    iseq ${platform} pcbios && initrd ${protocol}://${booturl}/boot/${bootfile} boot.wim || ##两个文件名称一样,不加 -n 参数没有影响。
    iseq ${platform} efi && initrd -n boot.wim ${protocol}://${booturl}/boot/${bootfile} ||
    imgstat && sleep 1
#    boot ${protocol}://${booturl}/boot/wimboot.ipxe
    boot || goto bootmenu #启到这里不成功,说明没这个wim文件,回菜单重新选另一个文件启动

:end






wechat_2025-09-17_124121_119.png (4.84 KB, 下载次数: 1)

wechat_2025-09-17_124121_119.png
2#
发表于 昨天 10:55 | 只看该作者
和题无关
这个工具应该能用的。排除一下是否有多dhcp的情况
windows&LinuxDHCP发现工具
https://www.52pojie.cn/thread-2059840-1-1.html

点评

要登录,下不了  详情 回复 发表于 昨天 11:25
回复

使用道具 举报

3#
发表于 昨天 11:07 | 只看该作者
还是通过抓包排查吧,我看你研究这么久。这点小问题应可以解决的

点评

方便的话,也可以教大家一下如何抓包排查,也会不会操作  详情 回复 发表于 昨天 11:09
回复

使用道具 举报

4#
发表于 昨天 11:09 | 只看该作者
redapple 发表于 2025-9-17 11:07
还是通过抓包排查吧,我看你研究这么久。这点小问题应可以解决的

方便的话,也可以教大家一下如何抓包排查,也会不会操作
回复

使用道具 举报

5#
发表于 昨天 11:19 | 只看该作者
来学习了
回复

使用道具 举报

6#
 楼主| 发表于 昨天 11:25 | 只看该作者
freesoft00 发表于 2025-9-17 10:55
和题无关
这个工具应该能用的。排除一下是否有多dhcp的情况
windows&LinuxDHCP发现工具

要登录,下不了

点评

谢谢,下载运行后  详情 回复 发表于 昨天 11:52
htt删ps://删3w.123865.co删m/s/zRLMjv-GHJlA  发表于 昨天 11:36
回复

使用道具 举报

7#
发表于 昨天 11:29 | 只看该作者
好好检查下网络设置问题





1.png (35.11 KB, 下载次数: 0)

ipxe-efi

ipxe-efi
回复

使用道具 举报

8#
发表于 昨天 11:32 | 只看该作者
BIOS-TFTP

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

BIOS

BIOS

点评

将VMware虚拟机网络设置改为仅主机模式,顺利进入IPXE菜单。 目前仅存在BIOS下使用WIMBOOT的问题了。Bad CPIO magic FATAL: could not extract initrd files  详情 回复 发表于 昨天 12:42
回复

使用道具 举报

9#
 楼主| 发表于 昨天 11:52 | 只看该作者

谢谢,下载运行后

wechat_2025-09-17_115114_584.png (4.14 KB, 下载次数: 0)

wechat_2025-09-17_115114_584.png

wechat_2025-09-17_115046_888.png (11.33 KB, 下载次数: 0)

wechat_2025-09-17_115046_888.png
回复

使用道具 举报

10#
 楼主| 发表于 昨天 12:02 | 只看该作者
本帖最后由 mygamexxx 于 2025-9-17 12:05 编辑

BIOS代理模式更不行,DHCP阶段就出问题,从TINYPXE日志中,IP地址为0.0.0.0。

wechat_2025-09-17_120045_023.png (30.72 KB, 下载次数: 0)

wechat_2025-09-17_120045_023.png

wechat_2025-09-17_120212_119.png (5.33 KB, 下载次数: 0)

wechat_2025-09-17_120212_119.png
回复

使用道具 举报

11#
 楼主| 发表于 昨天 12:42 | 只看该作者
本帖最后由 mygamexxx 于 2025-9-17 13:27 编辑

将VMware虚拟机网络设置改为仅主机模式,顺利进入IPXE菜单。

目前仅剩下BIOS下IPXE使用WIMBOOT的问题了。
Bad CPIO magic
FATAL: could not extract initrd files
BIOS与UEFI同一脚本,UEFI下没问题,autoexec.ipxe脚本如下:

#!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
prompt --key 0x02 --timeout 2000  Press Ctrl-B for the iPXE command line... ||
#console --picture http://${booturl}/boot/background.png --x 1024 --y 768 ||
console --picture /boot/background.png

:bootmenu  #启动菜单查看基本情况
    menu iPXE Boot Menu BootServer--${protocol}://${booturl}

    item --gap -- IP: ${ip}/${netmask} Mac Address:${mac}
    item --gap -- DHCP:${dhcp-server} Gateway:${gateway} DNS:${dns}
    item --gap -- next-server(proxy):${next-server}/${proxydhcp/next-server} SMBIOS UUID:${uuid}
    item --gap -- Chip:${chip} Platform:${platform} Build Arch:${buildarch} Version:${version}
    item --gap -- ====================================================================================
    item --gap -- Choose BootFile
    item --key 1 boot.wim       1.  Boot boot.wim #启动boot.wim
    item --key 2 ipxefm         2.  Boot ipxefm #启动ipxefm
    item --key 3 grub4efi       3.  Boot grub4efi #启动grub4efi


    item --gap -- Advanced options
    item --key l local          L.  Boot from local drive
    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 e exit           E.  Exit iPXE and continue BIOS boot
    item --key p poweroff       P.  Poweroff computer
    choose --timeout 10000 --default boot.wim selected || #默认选boot.wim来启动
    iseq ${selected} ipxefm && goto ipxefm ||
    iseq ${selected} grub4efi && chain ${protocol}://${booturl}/bootg4e.efi ||
    iseq ${selected} local && sanboot --no-describe --drive 0x80 ||
    iseq ${selected} config && config ||
    iseq ${selected} shell && shell ||
    iseq ${selected} reboot && reboot ||
    iseq ${selected} exit && exit ||
    iseq ${selected} poweroff && poweroff ||
    set bootfile ${selected} && echo bootfile:${selected} && goto wimboot  #启动菜单上选中的wim文件,也就是pe ||
    sleep 1 && goto wimboot

:switch_protocol #http不能启动?就改协议成tftp,然后继续启动
    console
    echo error! swich_protocol!
    set protocol tftp
    echo now boofile is ${protocol}://${booturl}/boot/${bootfile}
    sleep 1 && goto wimboot

:ipxefm
iseq ${platform} pcbios && chain ${protocol}://${booturl}/pxe/ipxefm/ipxeboot.txt ||
iseq ${platform} efi && chain ${protocol}://${booturl}/pxe/ipxefm/ipxeboot.txt ||
goto end

:wimboot #启动菜单上选中的PE
    echo ${bootfile}
    kernel ${protocol}://${booturl}/boot/wimboot.ipxe ${wimbootcmd} gui || goto switch_protocol #第一个文件都取不成功,肯定http走不起了,换tftp协议
#bootmgr.exe被压缩之后再接上一段16位程序就是bootmgr,两者不一样。
    iseq ${platform} pcbios && initrd ${protocol}://${booturl}/bootmgr.pxe bootmgr.exe ||
#前后文件名称不相同时,要加 -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/fonts/segoen_slboot.ttf segoen_slboot.ttf ||
#    initrd ${protocol}://${booturl}/boot/fonts/segoe_slboot.ttf segoe_slboot.ttf ||
#    initrd ${protocol}://${booturl}/boot/fonts/segmono_boot.ttf segmono_boot.ttf ||
#    initrd ${protocol}://${booturl}/boot/fonts/wgl4_boot.ttf wgl4_boot.ttf ||  
#    initrd ${protocol}://${booturl}/boot/resources/bootres.dll bootres.dll ||
    iseq ${platform} pcbios && initrd ${protocol}://${booturl}/boot/${bootfile} boot.wim || ##两个文件名称一样,不加 -n 参数没有影响。
    iseq ${platform} efi && initrd -n boot.wim ${protocol}://${booturl}/boot/${bootfile} ||
    imgstat && sleep 1
#    boot ${protocol}://${booturl}/boot/wimboot.ipxe
    boot || goto bootmenu #启到这里不成功,说明没这个wim文件,回菜单重新选另一个文件启动

:end


wechat_2025-09-17_124121_119.png (4.84 KB, 下载次数: 0)

wechat_2025-09-17_124121_119.png
回复

使用道具 举报

12#
发表于 昨天 14:13 | 只看该作者
问题解决了就好
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2025-9-18 03:50

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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