SDB:IPXE booting ipv6 uefi
This short article is based on SDB:PXE boot installation, SDB:IPXE booting and UEFI HTTPBoot with OVMF. But the focus changed to booting via IPv6 and using newer hardware platforms - UEFI, in this case with "secure boot" disabled.
Instead of dhcp dhcpd6 is used.
dhcpd6.conf:
if exists dhcp6.client-arch-type and option dhcp6.client-arch-type = 00:07 { option dhcp6.bootfile-url "tftp://[2001:db8:4f01:1::2018:193]/ipxe.efi"; }
The file ipxe.efi is provided via tftp. (newer versions of UEFI allow http also)
For IPv6 one line of the file
config/general.h:
needs to be changed (sources of iPXE) to
#define NET_PROTO_IPV6 /* IPv6 protocol */ #define DOWNLOAD_PROTO_HTTPS /* Secure Hypertext Transfer Protocol */
chainloading is used, the first ipxe script will be embedded, later it starts the second script
myscript.ipxe:
#!ipxe ifconf --configurator ipv6 net0 chain https://www.myexample.de/~thomas/script.ipxe
script.ipxe:
#!ipxe kernel http://download.opensuse.org/factory/repo/oss/boot/x86_64/loader/linux initrd=initrd splash=silent install=http://download.opensuse.org/factory/repo/oss/ initrd http://download.opensuse.org/factory/repo/oss/boot/x86_64/loader/initrd boot
Compile the boot file and copy it to your tftp server.
make bin-x86_64-efi/ipxe.efi EMBED=myscript.ipxe TRUST=myexample.de-cert.pem
for faster initialising with just the generic driver for efi alternatively use
make bin-x86_64-efi/snponly.efi EMBED=myscript.ipxe TRUST=myexample.de-cert.pem
Video of net boot via IPv6 with openSUSE in UEFI mode (disabled secure boot)