Using ipxe

by kranzo

compile basic ipxe

# clone sources
git clone git clone [email protected]:ipxe/ipxe.git 

# install build dependencies
sudo dnf install gcc binutils make perl liblzma mtools mkisofs syslinux

# build for x86 uefi
cd ipxe/src
make bin/ipxe.lkrn bin-x86_64-efi/ipxe.efi

# build iso
./util/genfsimg -o ipxe.iso bin/ipxe.lkrn bin-x86_64-efi/ipxe.efi

embedd boot script

boot.ipxe:

#!ipxe
set uri http://10.0.2.2/boot-http.ipxe
dhcp
:loading
prompt Press any key to continue loading from ${uri}
echo loading from ${uri}
chain ${uri}
goto loading

build for x86 uefi with build script

cd ipxe/src
make bin/ipxe.lkrn bin-x86_64-efi/ipxe.efi

test using qemu

qemu-system-x86_64 -boot d -cdrom ipxe.iso -m 512

Quellen:

  1. Medium
  2. ipxe