一、IPXE官网地址
IPXE官网网址:https://ipxe.org/download
二、编译环境
Debian12全新安装环境,使用root账号登录后,安装必要的软件包
apt install nano git build-essential perl liblzma-dev
apt install mkisofs #不生成ISO不需要
apt install syslinux #不生成ISO不需要
三、IPXE源码下载
git clone https://github.com/ipxe/ipxe.git
四、自定义功能
1、启用ipxe的console命令,让ipxe支持调整分辨率 以及 支持自定义背景图片
cd /root/ipxe/src
sed -i 's/\/\/#define\ IMAGE_PNG/#define\ IMAGE_PNG/' config/general.h
sed -i 's/\/\/#define\ CONSOLE_CMD/#define\ CONSOLE_CMD/' config/general.h
sed -i 's/\/\/#define\tCONSOLE_FRAMEBUFFER/#define\tCONSOLE_FRAMEBUFFER/' config/console.h
2、启用ipxe的ping命令
cd /root/ipxe/src
sed -i 's/\/\/#define\ PING_CMD/#define\ PING_CMD/' config/general.h
sed -i 's/\/\/#define\ IPSTAT_CMD/#define\ IPSTAT_CMD/' config/general.h
3、NFS 协议支持
sed -i 's/#undef\tDOWNLOAD_PROTO_NFS/#define\tDOWNLOAD_PROTO_NFS/' config/general.h
4、poweroff 与reboot 命令支持
sed -i 's/\/\/#define\ REBOOT_CMD/#define\ REBOOT_CMD/' config/general.h
sed -i 's/\/\/#define\ POWEROFF/#define\ POWEROFF/' config/general.h
5、 params 命令支持 (开启他,可以传参 platform ${builtin/platform} 的 pcbios 和 efi 参数值)
sed -i 's/\/\/#define\ PARAM_CMD/#define\ PARAM_CMD/' config/general.h
6、启用sanboot 部分协议
sed -i 's/\/\/#undef\tSANBOOT_PROTO_ISCSI/#define\tSANBOOT_PROTO_ISCSI/' config/general.h
sed -i 's/\/\/#undef\tSANBOOT_PROTO_HTTP/#define\tSANBOOT_PROTO_HTTP/' config/general.h
五、为IPXE添加嵌入脚本
在 ipxe/src中创建一个脚本 boot.ipxe,内容为
#!ipxe
dhcp
chain --autofree tftp://${next-server}/bios.cfg
其中bios.cfg在每次编译时不同模块时,请修改名称。
六、编译IPXE
1.编译标准 iPXE(BIOS) 镜像: 运行以下命令编译一个标准的 iPXE 镜像:
make bin/undionly.kpxe EMBED=boot.ipxe
cp bin/undionly.kpxe /root/bios.kpxe
2.编译标准 iPXE(UEFI64)镜像:运行以下命令编译标准的 UEFI64镜像:
修改boot.ipxe文件中的bios.cfg为uefi.cfg
sed -i 's/bios.cfg/uefi.cfg/' boot.ipxe
make bin-x86_64-efi/ipxe.efi EMBED=boot.ipxe
cp bin-x86_64-efi/ipxe.efi /root/boot.efi
3.编译iPXE(ARM64)镜像:运行以下命令编译标准的 ARM64镜像:
修改boot.ipxe文件中的boot.cfg为arm64.cfg
sed -i 's/boot.cfg/arm64.cfg/' boot.ipxe
apt install gcc-aarch64-linux-gnu
make CROSS=aarch64-linux-gnu- bin-arm64-efi/ipxe.efi EMBED=boot.ipxe
cp bin-arm64-efi/ipxe.efi /root/arm64.efi
评论前必须登录!
注册