SDB:IPXE booting ipv6 uefi

Jump to: navigation, search

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)