<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body style="overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;">
Hi!
<div><br>
<div>
<blockquote type="cite">
<div>
<div>One specific thing that has me confused in all this is I keep seeing references to a boot-file-name setting with various different *.efi files, but can't find any of those files anywhere.  There doesn't seem to be an rpm that will install them in rocky
 linux 8.x, 9.x or CentOS 7.</div>
</div>
</blockquote>
Well, those efi files are coming from iPXE (<a href="https://ipxe.org/">https://ipxe.org/</a>). You can download the binaries (<a href="http://boot.ipxe.org">http://boot.ipxe.org</a>) or bake them according to your needs (<a href="https://ipxe.org/download#uefi">https://ipxe.org/download#uefi</a>).</div>
<div><br>
</div>
<div>All the configuration examples about the chain loading (<a href="https://ipxe.org/howto/chainloading">https://ipxe.org/howto/chainloading</a>) are for the ISC DHCP server, so here is a snippet about chain loading + breaking the loop (we must support both
 BIOS and UEFI clients) for Kea:</div>
<div><br>
</div>
<div>[…]</div>
<div>
<div>    "client-classes":</div>
<div>    [</div>
<div>      { "name": "XClient_iPXE", "test": "substring(option[77].hex,0,4) == 'iPXE'", "boot-file-name": "http://192.168.10.4/ipxe/boot.ipxe" },</div>
<div>      { "name": "UEFI-32-2",    "test": "substring(option[60].hex,0,20) == 'PXEClient:Arch:00002'", "boot-file-name": "ipxe/i386/ipxe.efi",   "next-server": "192.168.10.4" },</div>
<div>      { "name": "UEFI-32-6",    "test": "substring(option[60].hex,0,20) == 'PXEClient:Arch:00006'", "boot-file-name": "ipxe/i386/ipxe.efi",   "next-server": "192.168.10.4" },</div>
<div>      { "name": "UEFI-64-7",    "test": "substring(option[60].hex,0,20) == 'PXEClient:Arch:00007'", "boot-file-name": "ipxe/x86_64/ipxe.efi", "next-server": "192.168.10.4" },</div>
<div>      { "name": "UEFI-64-8",    "test": "substring(option[60].hex,0,20) == 'PXEClient:Arch:00008'", "boot-file-name": "ipxe/x86_64/ipxe.efi", "next-server": "192.168.10.4" },</div>
<div>      { "name": "UEFI-64-9",    "test": "substring(option[60].hex,0,20) == 'PXEClient:Arch:00009'", "boot-file-name": "ipxe/x86_64/ipxe.efi", "next-server": "192.168.10.4" },</div>
<div>      { "name": "Legacy",       "test": "substring(option[60].hex,0,20) == 'PXEClient:Arch:00000'", "boot-file-name": "ipxe/undionly.kipxe",  "next-server": "192.168.10.4" }</div>
<div>    ],</div>
<div>[…]</div>
<div><br>
</div>
<div>You will obviously need an HTTP server, serving the ipxe script (e.g. <a href="http://boot.ipxe.org/demo/">
http://boot.ipxe.org/demo/</a>), as well as TFTP server (e.g. tftpd-hpa) serving the efi’s. In the example above both services run on the very same machine.</div>
<div>If IPv6 is a topic for you, you might want to take a look into the Kea DHCPv6 iPXE configuration, <a href="https://github.com/isc-projects/kea/blob/master/doc/examples/kea6/iPXE.json">https://github.com/isc-projects/kea/blob/master/doc/examples/kea6/iPXE.json</a>.</div>
<div><br>
</div>
<div><br>
</div>
<div>Hope this helps.</div>
<div><br>
</div>
<div>Best,</div>
<div>   Damyan</div>
</div>
<div><br>
</div>
<div>
<p class="p1" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><span class="s1"><b>Damyan Yordanov</b></span><o:p></o:p></p>
<p class="p1" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><span class="s1">BTP Core FP R&C Gardener (SE)</span><o:p></o:p></p>
<p class="p2" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><span class="s2"><b>SAP SE, </b></span><span class="s1">Dietmar-Hopp-Allee 16, 69190 Walldorf, Germany</span></p>
<p class="p1" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><span class="s1">T +49 6227 7-65764, M +49 160 90 842 652, <a href="mailto:damyan.yordanov@sap.com">damyan.yordanov@sap.com</a></span></p>
</div>
</div>
</body>
</html>