Wrong grub.cfg-@mac file created


Trying to provision a bare metal server with RHEL 8.3

grub.cfg-@mac are not generated as expected in /var/lib/tftpboot/ on smart proxy

it seems to be a default template with some lines truncated, the server can tftp and grab grubx64.efi but with these wrong files, it stops at grub line

if i put a grub.cf-@mac modified with the content of preview template that i find in Template tab in the host, i can boot and install the server

i use Grub2 UEFI as loader

already tried many combination of loader and kickstart, don’t find the problem

Foreman and Proxy plugin versions:

foreman_discovery 16.3.4

Distribution and version:
foreman : RHEL 7.9
smart proxy : RHEL 7.6


are you saying that Foreman deploys corrupted files? Can you share how exactly they look? I have never seen that before.

Can you check your filesystem? All good?

Also check logs for both foreman and the proxy. Maybe a firewall between them would cut the connection? I am shooting in the dark here.

There is a “blob” logger, if you enable it all templates which are rendered also goes into the blob logger (into production.log). You should see what exactly Foreman renders before smart proxy HTTP request.

PXE Loader has no effect for that, as long as your PXEGrub template is associated with an OS it will get rendered.

no really corrupted, the content is from an another template for me ( a default for grub2 something like that), not the one expected and is missing one or two line but probably a result of a render
i look how to enable the blog logger

Can someone tell me where to find what’s make

2021-03-19T10:27:45 [I|app|6f306cf3] unattended: xxx.prod is built!
2021-03-19T10:27:55 [I|app|6f306cf3] Deploying TFTP PXELinux configuration for xxx.prod
2021-03-19T10:27:56 [I|app|6f306cf3] Deploying TFTP PXEGrub2 configuration for xxx.prod
2021-03-19T10:27:56 [I|app|6f306cf3] Deploying TFTP PXEGrub configuration for xxx.prod
2021-03-19T10:27:56 [I|app|6f306cf3] Deploying TFTP iPXE configuration for xxx.prod
2021-03-19T10:27:56 [I|app|6f306cf3] Processed 4 tasks from queue ‘Host::Managed Main’, completed 4/4
( i replaced my hostname by xxx )

the content of grub.cfg-@mac in grub2 is the content of ‘PXEGrub2 global default’ with this part removed, possible someone modified something ( it’s not a foreman of my team )

this part is missing from PXEGrub2 global default :

echo “Trying /httpboot/grub2/grub.cfg-$net_default_mac”
configfile “/httpboot/grub2/grub.cfg-$net_default_mac”

echo “Trying /grub2/grub.cfg-$net_default_mac”
configfile “/grub2/grub.cfg-$net_default_mac”

The following four statements breaks grub2 and it’s no

longer able to load any file from the base URL.

Comment them out to be able to use (UEFI/iPXE) HTTP Boot:


echo “Trying grub2/grub.cfg-$net_default_mac”
configfile “grub2/grub.cfg-$net_default_mac”

echo “Trying grub.cfg-$net_default_mac”
configfile “grub.cfg-$net_default_mac”

You really are trying to make this hard to understand, I have no idea what on Earth is going on there but my take from this is this is solved (somebody edited the template).