经过研究,终于可以将ESXI的系统通过IPXE网络启动安装到无盘的软路由或者PC上了,当然也可以通过这种方法安装window、linux等等其他的系统。
一、编译IPXE增加功能与自定义脚本
一、iPXE 概要
按iPXE 官网的介绍是这样的:iPXE 是领先的开源网络启动固件。它提供了一个完整的 PXE 实现,增强了其他功能,例如通过 HTTP 从 Web 服务器启动、从 iSCSI SAN 启动 等等.![167698884_2_20190805080541222.png](http://image109.360doc.com/DownloadImg/2019/08/0520/167698884_2_20190805080541222.png)
二、下载 iPXE 源码并编译(编译环境ubuntu)
git 下载 iPXE 源码git clone git://git.ipxe.org/ipxe.git
或git clone https://github.com/ipxe/ipxe.git
make 编译cd ipxe/src
make bin/undionly.kpxe
编译后会在 bin 目录下生成 undionly.kpxe 文件,这个就是 iPXE 网络启动固件![167698884_3_20190805080541503.jpg](http://image109.360doc.com/DownloadImg/2019/08/0520/167698884_3_20190805080541503.jpg)
make 编译64位cd ipxe/src
make bin-x86_64-pcbios/undionly.kpxe
编译前先安装这些依赖环境
gcc (version 3 or later)
binutils (version 2.18 or later)
make
perl
liblzma or xz header files
mtools
mkisofs (needed only for building .iso images)
syslinux (for isolinux, needed only for building .iso images)
开启其他功能
编译好以后默认开启的功能有
DNS、HTTP、iSCSI、TFTP、AoE、ELF、MBOOT、PXE、bzImage、Menu、PXEXT
在上图的启动界面可以看到。
如果要加载 HTTPS web 的内容,那就要开启 HTTPS
还有一些系统启动需要开启 COMBOOT 功能
下面以开启 HTTPS 和 COMBOOT 功能为例进行编译
修改源码下 src/config/general.h 文件vi config/general.h
找到 DOWNLOAD_PROTO_HTTPS,将 DOWNLOAD_PROTO_HTTPS 前面有#undef 改成 #define
找到 IMAGE_COMBOOT 将前面的注释去掉#define DOWNLOAD_PROTO_HTTPS
#define IMAGE_COMBOO
或者将上面的代码添加到源码目录 src/config/local/general.h 文件里
修改完用前面的 make bin/undionly.kpxe 重新编译即可