====== iPXE ======
==== Get Source ====
Get ipxe source
git clone git://git.ipxe.org/ipxe.git
Next step create custom script
==== Custom ipxe ====
:!: Simple http server works just fine serving the ipxe.txt and kickstarts, but no HTTPS.
#!ipxe
echo Welcome to iPXE!
:retry_dhcp
dhcp || goto retry_dhcp
:bootup
echo #
echo ip ...................... : ${ip}
echo #
echo Booting from http://plainhttp.k2patel,in/ipxe/ipxe.txt
read test
chain http://plainhttp.k2patel.in/ipxe/ipxe.txt
prompt
shell
==== Create image ====
=== For ISO ===
cd ipxe/src
make bin/ipxe.iso EMBED=k2patel.ipxe
:?: If you get error "make iso genisoimage: Uh oh, I cant find the boot image 'isolinux.bin'"
cd ipxe
wget https://mirrors.edge.kernel.org/pub/linux/utils/boot/syslinux/syslinux-6.03.zip
mkdir syslinux-6.03
cd syslinux-6.03
unzip ../syslinux-6.03.zip
cd src
make -j 4 ISOLINUX_BIN=../syslinux-6.03/bios/core/isolinux.bin \
LDLINUX_C32=../syslinux-6.03/./bios/com32/elflink/ldlinux/ldlinux.c32 bin/ipxe.iso EMBED=k2patel.ipxe
=== For USB ===
cd ipxe/src
make bin/ipxe.usb EMBED=k2patel.ipxe
dd if=ipxe.usb of=/dev/sdX
sync
=== For EFI ===
cd ipxe/src
make bin-x86_64-efi/ipxe.efi EMBED=k2pate.ipxe
mkfs.fat -F32 /dev/sdxY
mkdir /tmp/efifld
mount /dev/sdxY /tmp/efidrive
mkdir -p /tmp/efifld/efi/boot
cp bin-x86_64-efi/ipxe.efi /tmp/efifld/efi/boot/bootx64.efi
umount /tmp/efifld