|
本帖最后由 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
|
|