On Fri, 2019-11-29 at 14:44:30 +0000, Frank Morawietz wrote:
> In a recent discussion I found...
> 
> > You have to start the PC using UEFI boot via PXE (instead of legacy) -
> > than grub-install installs the efi-based grub when called by FAI.
> 
> ...and that's exactly what I'm fighting with currently.
> Has anybody done this already? Booting PXE in UEFI mode in order to run the 
> FAI installation for UEFI?
> 
> I configured the BIOS settings of the client accordingly: Secure Boot off; 
> Enable UEFI network stack; included NIC into boot list; etc.
> 
> On the FAI server side I can see the DHCPDISCOVER, DHCPOFFER, DHCPREQUEST and 
> DHCPACK sequence with correct MAC and IP addresses in the daemon.log . This 
> is followed by the usual "tftp: client does not accept options", so I assume 
> that control gets handed over to tftpd. Looks like a successful PXE boot to 
> me.
> 
> On the client side the PXE is requesting the address, waiting for some time, 
> then the screen displays a generic error message and recommends to run diags, 
> go to BIOS or try again.
> 
> An update of the client's BIOS to the most recent version did not help.
> 
> In my despair I even called the vendor support. They told me that I needed a 
> different pxelinux image for UEFI... Can this be true?
> 
> BTW: The very same configuration booted with PXE in legacy mode works 
> perfectly. It starts fine and the whole installation runs through until the 
> system is installed completely. Of course, it installed a legacy system, not 
> UEFI, then.
> 
> Thanks for any experience/advice/help,

Hi Frank,

from my dhcpd.conf:

## PXE boot handling: support UEFI
## https://www.syslinux.org/wiki/index.php?title=PXELINUX#UEFI
## merged with something else that doesn't require "architecture type code 93"
    if substring(option vendor-class-identifier, 0, 20) = 
"PXEClient:Arch:00000" {
          filename "pxelinux.0";
# needs ldlinux.c32
    }
    if substring(option vendor-class-identifier, 0, 20) = 
"PXEClient:Arch:00006" {
          filename "syslinux32.efi";
# needs ldlinux.e32
    }
    if substring(option vendor-class-identifier, 0, 20) = 
"PXEClient:Arch:00007" {
          filename "syslinux64.efi";
# needs ldlinux.e64
    }
    if substring(option vendor-class-identifier, 0, 20) = 
"PXEClient:Arch:00009" {
          filename "syslinux64.efi";
    }

Does this help you?

Cheers,
 Steffen

-- 
Steffen Grunewald, Cluster Administrator
Max Planck Institute for Gravitational Physics (Albert Einstein Institute)
Am Mühlenberg 1 * D-14476 Potsdam-Golm * Germany
~~~
Fon: +49-331-567 7274
Mail: steffen.grunewald(at)aei.mpg.de
~~~

Antwort per Email an