This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
ipxe [2020/06/20 03:16] k2patel created |
ipxe [2020/08/10 02:35] (current) |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== iPXE ====== | ====== iPXE ====== | ||
+ | ==== Get Source ==== | ||
+ | Get ipxe source | ||
+ | <code bash> | ||
+ | git clone git://git.ipxe.org/ipxe.git | ||
+ | </code> | ||
+ | Next step create custom script | ||
+ | |||
+ | ==== Custom ipxe ==== | ||
+ | :!: Simple http server works just fine serving the ipxe.txt and kickstarts, but no HTTPS. | ||
+ | |||
+ | <code bash | k2patel.ipxe> | ||
+ | #!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 | ||
+ | </code> | ||
+ | |||
+ | ==== Create image ==== | ||
+ | === For ISO === | ||
+ | <code bash> | ||
+ | cd ipxe/src | ||
+ | make bin/ipxe.iso EMBED=k2patel.ipxe | ||
+ | </code> | ||
+ | |||
+ | :?: If you get error "make iso genisoimage: Uh oh, I cant find the boot image 'isolinux.bin'" | ||
+ | |||
+ | <code bash> | ||
+ | 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 | ||
+ | </code> | ||
+ | |||
+ | === For USB === | ||
+ | <code bash> | ||
+ | cd ipxe/src | ||
+ | make bin/ipxe.usb EMBED=k2patel.ipxe | ||
+ | dd if=ipxe.usb of=/dev/sdX | ||
+ | sync | ||
+ | </code> | ||
+ | |||
+ | === For EFI === | ||
+ | <code bash> | ||
+ | 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 | ||
+ | </code> |