|
ipxe 中的wimboot新完善了UEFI HTTP方式启动PE,经过测试成功,在制作启动文件和启动菜单中费了一番周折,一点体会和各位分享。
将wimboot复制到HTTP启动根目录,ipxe.krn复制到pxe启动根目录,当然最好是把HTTP启动根目录和pxe启动根目录设置在一起,这样可以共用所有启动文件,
步骤1 生成snponly.efi undionly.kpxe
https://rom-o-matic.eu/
script中按下面的格式生成
#!ipxe
dhcp
chain http://192.168.1.188/menu.ipxe
生成的snponly.efi undionly.kpxe复制到pxe启动根目录
步骤2 编辑http启动菜单menu.ipxe
如果希望uefi及pxe方式启动都用同一个菜单文件menu.ipxe
可以在菜单文件的开始使用 iseq ${platform} efi && goto is_efi || goto not_efi
然后在下面的两个段内分别编辑efi启动下的菜单及pxe启动下的菜单。
: is_efi
:not_efi
步骤3菜单文件编辑的要点,这里HTTP的ip为 192.168.1.188
isset ${ip} || dhcp
isset ${next-server} || set next-server 192.168.1.188
这是uefi下的菜单,为简化结构,bcc为bcd改名而来,实践发现不需要bootx64.efi文件
:w8pe364
kernel http://${next-server}/wimboot
initrd -n BCD http://${next-server}/boot/bcc
initrd http://${next-server}/BOOT/boot.sdi
initrd http://${next-server}/winpe3.WIM
boot || goto failed
goto start
这是pxe部分启动菜单内的,为简化结构,bootmga.exe由bootmgr.exe修改BCD而来,bca为BCD改名而来,
:w8pe132pxe
kernel http://${next-server}/wimboot
initrd http://${next-server}/bootmga.exe bootmgr.exe
initrd http://${next-server}/boot/bca bca
initrd http://${next-server}/BOOT/boot.sdi boot.sdi
initrd http://${next-server}/winpe1.WIM winpe1.WIM
boot || goto failed
goto start2
步骤4启动文件的准备
pxe启动在menu.lst中添加以下启动到HTTP方式
title HTTP高速启动菜单
pxe keep
chainloader --raw (pd)/undionly.kpxe
如果不想每次都到网站去生成undionly.kpxe,也可以用下面的菜单
title HTTP启动测试
pxe keep
kernel (pd)/Ipxe.krn
initrd (pd)/http.ipx
其中http.ipx为ANSI格式文本文件,文本内容可按本文开始script部分编辑。这样的方式修改比较方便。
UEFI启动只需在DHCP启动服务器的dhcpsrv.ini中添加下面这些,设置UEFI引导下的启动文件。
VendorClassId=PXEClient:Arch:00007:
BootFile2=snponly.efi
NextIP=192.168.1.188
|
|