|
本帖最后由 hhh333 于 2014-9-21 10:45 编辑
确实是boot语句出错了,后面是脚本中没有shell标签的问题,不管它。
我大致是这样的,先去编译一个32位的ipxe32.efi,放一个脚本:
- #!ipxe
- dhcp
- set x32 32
- chain efi/H3_iPXEM.EFI
复制代码
编一个菜单,支持32与64的:
- #!ipxe
- set menu-timeout 8000
- set menu-default w8pe
- isset ${ip} || dhcp
- isset ${next-server} || set next-server 192.168.7.100
- cpuid --ext 29 && set x64 Y || set x32 Y
- :start
- menu iPXE EFI Boot Menu
- item --gap -- -------------------------------- H3 PE TOOL ---------------------------
- item w8pe 1-- Win8 PE
- item w81pe 2-- Win81 PE
- item --gap -- -----------------------------------------------------------------------
- choose --timeout ${menu-timeout} --default ${menu-default} selected
- goto ${selected}
- :shell
- echo Type 'exit' to get the back to the menu
- shell
- goto start
-
- :failed
- echo Booting failed, dropping to shell
- imgstat
- goto shell
-
- :w8pe
- set bootfile bootx64.efi && set tbcdfile BCD && set sbcdfile b64 && set pefile H3_864.WIM
- isset ${x32} && set bootfile bootia32.efi && set tbcdfile B32 && set sbcdfile b832 && set pefile H3_8PE.WIM ||
- goto wimbootpe
- :w81pe
- set bootfile bootx64.efi && set tbcdfile BCD && set sbcdfile b16 && set pefile H3_8164.WIM
- isset ${x32} && set bootfile bootia32.efi && set tbcdfile B32 && set sbcdfile b8132 && set pefile H3_81PE.WIM ||
- goto wimbootpe
- :wimbootpe
- kernel http://${next-server}/BOOT/wimboot
- initrd http://${next-server}/efi/boot/${bootfile}
- initrd -n ${tbcdfile} http://${next-server}/efi/microsoft/boot/${sbcdfile}
- initrd http://${next-server}/BOOT/boot.sdi
- initrd http://${next-server}/BOOT/${pefile}
- boot || goto failed
- goto start
复制代码
64位没有问题,32位的就如下:
另外要说的是,32位的EFI,只要在VM中建非64位的虚拟机,再加那一条命令就是32位EFI启动的。PXE启动EFI32没有问题,现在就在ipxe与wimboot配合时出错,不知是不是wimboot的问题。
|
|