|
本帖最后由 hhh333 于 2014-9-19 18:09 编辑
近期在调试EFI网启,BCD位置各有不同,笔记出来:
1、EFI本地启动与EFI网启BCD不一样
EFI本地启动:bootx64.efi-->efi\microsoft\boot\bcd-->pe.wim
EFI网络启动:bootx64.efi-->boot\bcd-->pe.wim
2、EFI网启时PXE与iPXE的BCD不一样
PXE过程:bootx64-->boot\bcd-->pe.wim
iPXE过程:snponly.efi-->wimboot-->bootx64.efi-->efi\microsoft\boot\bcd-->pe.wim
基于以上过程,如何修改自己的PE网启模块?下面谈一下经验:
新的wimboot可以支持EFI网启了,显然用iPXE/wimboot/HTTP配合网启目前速度是最快的。这个过程如下:
efi\boot\ipxe64.efi-->efi\H3_iPXEM.EFI-->BOOT\wimboot-->efi\boot\bootx64.efi-->efi\microsoft\boot\bcd-->UEFI PE(Win8 64或Win8.1 64)
其中ipxe64.efi是通过网络编译的,脚本很简单
- #!ipxe
- dhcp
- chain efi/H3_iPXEM.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}
- :failed
- echo Booting failed, dropping to shell
- 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
复制代码
|
评分
-
查看全部评分
|