Problem with CentOS8 UEFI provisioning

I have a problem provisioning CentOS8 via UEFI. Provisioning of legacy CentOS8 or CentOS7 UEFI is working fine.


Partition table:

clearpart --all --initlabel

part /boot/efi --fstype="efi" --ondisk=sda --size=200 --fsoptions="umask=0077,shortname=efi"
part /boot --fstype="xfs" --ondisk=sda --size=1024

part swap --size=8000 --ondisk=sda
part / --fstype=xfs --ondisk=sda --size=1024 --grow

Expected outcome:
Foreman successful provision of CentOS8

Foreman and Proxy versions:
foreman.noarch 2.1.4-1.el8

Foreman and Proxy plugin versions:
rubygem-foreman_discovery.noarch 16.1.2-1.fm2_1.el8

Distribution and version:

Other relevant data:

Hello, this is now the 2nd time someone reported it. Which CentOS 8 version are you installing? Is this Stream? Or CentOS 8 legacy?

For the record, the current CentOS 8 Stream PXE init ram disk looks okay:

$ shasum initrd.img
e146124966bd73f422814e8fccc7708b74a5e06d  initrd.img

$ lsinitrd initrd.img
(no errors)

Can you share your shasum? Can you try to delete the file and try again? There is a known bug in TFTP smart proxy - if a file gets replaced on the upstream site it simply appends the rest instead redownloading. This corrupts it. We need to fix this and now with CentOS 8 Stream which rebases the PXE images on a regular basis this should be our priority now.

This patch should resolve the problem with continue wget argument:

I think there is a bug currently in RHEL8 that is causing this I believe.

Not sure the real issue, because its being tracked in an internal only bug, maybe Lukas has access.

My kickstarts do not work with 8.3+ media, and the same issue occurs in Centos/Cento 8 Streams.

Try using the 8.2 boot media to get your initial kickstart boot kernel/initrd to use.

Hello. Sorry for not being clear, but I’m having problems installing CentOS8 legacy on UEFI system. The installation via legacy BIOS is working fine.

Which CentOS 8 version are you installing? Is this Stream? Or CentOS 8 legacy?

The CentOS version is legacy 8.3.2011

$ sha1sum centos-8-FrlYBgzfk21z-initrd.img

$ lsinitrd initrd.img
(no errors)

@viwon If I use 8.2, the installation goes through smootly.

Thank you both for your help.

It appears that the RHEL team tracks nightly build bugs as private, I don’t know why perhaps to prevent them from being indexed by google because it was reported on unfinished release. I guess things must be lined up because of CentOS Stream, I asked them about this.

Anyway, the referenced BZ is I think a different problem. I don’t see any kernel modules failed to be loaded there, that looks like some NetworkManager issue.

If you are on SecureBoot, mind the Boothole CVE: Boot Hole Vulnerability - GRUB 2 boot loader - CVE-2020-10713 - Red Hat Customer Portal - old kernels will no longer load.

I am gonna try this now in a libvirt EFI environment.

So I tested this on Foreman 2.3 running on CentOS 7.x (latest stable). I made sure that grub2 was updated to the latest EL7 version, I set up a libvirt VM EFI on an isolated network. And - downloading of initramdisk failed in all times with “Timeout error” leading to kernel panic.

I noticed something, the initramdisk has grown substationally over the last couple of years:

7.0: 33 MB
7.5: 50 MB
7.8: 53 MB
8.0: 58 MB
8.1: 59 MB
8.2: 62 MB
8.3: 70 MB

I wonder if this is simply a bug in grub2 EFI stack or in libvirt PXE stack, we have seen couple of them in the past. This can lead to timeout errors or corrupted init ramdisk which can then lead to very random errors (like the one you experience).

Now, I copied grubx64.efi from my Fedora 33 and then my VM immediately booted and provisioned just fine. Can you try that?