Problem:
Grub2 (/grub2/grubx64.efi) network boot installation starts with dash and goes no further by install Ubuntu 18.04.
Foreman-katello OS is Centos 7.5.
Other relevant data:
[e.g. logs from Foreman and/or the Proxy, modified templates, commands issued, etc]
(for logs, surround with three back-ticks to get proper formatting, e.g.)
Hello…thanks for reply. I am sorry but i can not find the tftp log file, can you tell me please where to find it.
The picture is shown the the provisioning output on the Monitor…dash character in the right corner.
Sorry again…but i do not realy know what you mean with “formatting buttons in the edit dialog to format logs properly”?
First i had Foreman 18.02 and the installation did not work so i updated it to 18.03 and the same problem again. I have restarted the installation so that foreman created a new grubx64.efi in /var/lib/tftpboot/grub2. I have reconfigured the grub.cfg in /var/lib/tftpboot/grub2/ like you sed in some other posts. I have deleted the grub.cfg-01-xxxx and start the build more then 1 time. I set the the dhcp file name to grub2/grubx64.efi and /grub2/grubx64.efi. All of that didnt work for Ubuntu provisioning so i hoped some of you could help.
I have upgraded foreman to 19.1 and am getting the same message in log file by provisioning Ubuntu with UEFI (File not found…):
Nov 22 15:56:13 atgrzsl2838 in.tftpd[4100]: Client 10.12.19.37 File not found grub2/x86_64-efi/command.lst
Nov 22 15:56:13 atgrzsl2838 in.tftpd[4101]: RRQ from 10.12.19.37 filename grub2/x86_64-efi/fs.lst
Nov 22 15:56:13 atgrzsl2838 in.tftpd[4101]: Client 10.12.19.37 File not found grub2/x86_64-efi/fs.lst
Nov 22 15:56:13 atgrzsl2838 in.tftpd[4102]: RRQ from 10.12.19.37 filename grub2/x86_64-efi/crypto.lst
Nov 22 15:56:13 atgrzsl2838 in.tftpd[4102]: Client 10.12.19.37 File not found grub2/x86_64-efi/crypto.lst
Nov 22 15:56:13 atgrzsl2838 in.tftpd[4103]: RRQ from 10.12.19.37 filename grub2/x86_64-efi/terminal.lst
Nov 22 15:56:13 atgrzsl2838 in.tftpd[4103]: Client 10.12.19.37 File not found grub2/x86_64-efi/terminal.lst
Nov 22 15:56:13 atgrzsl2838 in.tftpd[4104]: RRQ from 10.12.19.37 filename /grub2/grub.cfg-01-b8-85-84-aa-47-3b
Nov 22 15:56:13 atgrzsl2838 in.tftpd[4104]: Client 10.12.19.37 finished /grub2/grub.cfg-01-b8-85-84-aa-47-3b
Nov 22 15:56:13 atgrzsl2838 in.tftpd[4105]: RRQ from 10.12.19.37 filename /grub2/grub.cfg-01-b8-85-84-aa-47-3b
There is no Foreman 19.1, perhaps you mean 1.19.1? You need to give correct and useful information if you can get anywhere.
It looks like the TFTP client is trying to grab one single file but it fails. TFTP is a UDP-based protocol and when packets do not reach its destination the client tries over and over again. Therefore my wild guess is - you have a firewall or NAT in between the client and TFTP server. This won’t work (it is possible to get TFTP working behind NAT with some effort and kernel modules).
Yes, sory i mean 1.19.1…
Thanks for your replay.
The question is why it is working with PXELinux BIOS for all OS and Grub2 UEFI is working with RHEL. The problem is only with Grub2 UEFI Ubuntu?
If the TFTP client can get the PXELinux BIOS for Ubuntu why can he not get the Grub2 UEFI…the installation media source is the same?
Red Hat grub2 is patched with this automatic loading of configuration via MAC address. Ubuntu/Debian build cannot do that as upstream does not have this implemented. That’s the reason why we offer this “trick” to find the file:
Can you try to change this line:
configfile=/grub2/grub.cfg-01-$mac
to
configfile=grub2/grub.cfg-01-$mac
And try again?
What’s actually in the /grub2/grub.cfg-01-b8-85-84-aa-47-3b file that fails to load? Isn’t it an empty file or something with wrong permissions?
Hi…thanks again for your reply. I have first changed the PXEGrub2 global default like you sad and then the /var/lib/tftpboot/grub2/grub.cfg on Foreman…but getting the same message.
grub2]# cat grub.cfg-01-d4-be-d9-6d-88-84
default=local
timeout=20
# On Debian/Ubuntu grub2 does not have patch for loading MAC-based configs. Also due to bug
# in RHEL 7.4 files are loaded with an extra ":" character at the end. This workarounds both
# cases, make sure "regexp.mod" file is present on the TFTP. For more info see:
# https://bugzilla.redhat.com/show_bug.cgi?id=1370642#c70
insmod regexp
regexp --set=1:m1 --set=2:m2 --set=3:m3 --set=4:m4 --set=5:m5 --set=6:m6 '^([0-9a-f]{1,2})\:([0-9a-f]{1,2})\:([0-9a-f]{1,2})\:([0-9a-f]{1,2})\:([0-9a-f]{1,2})\:([0-9a-f]{1,2})' "$net_default_mac"
mac=${m1}-${m2}-${m3}-${m4}-${m5}-${m6}
configfile=grub2/grub.cfg-01-$mac
source "$configfile"
menuentry 'Chainload Grub2 EFI from ESP' --id local {
unset root
echo Chainloading Grub2 EFI from ESP, available devices:
ls
echo -n "Probing ESP partition ... "
search --file --no-floppy --set=root /EFI/BOOT/BOOTX64.EFI
echo found $root
sleep 2
if [ -f ($root)/EFI/BOOT/grubx64.efi ]; then
chainloader ($root)/EFI/BOOT/grubx64.efi
elif [ -f ($root)/EFI/fedora/grubx64.efi ]; then
chainloader ($root)/EFI/fedora/grubx64.efi
elif [ -f ($root)/EFI/redhat/grubx64.efi ]; then
chainloader ($root)/EFI/redhat/grubx64.efi
elif [ -f ($root)/EFI/centos/grubx64.efi ]; then
chainloader ($root)/EFI/centos/grubx64.efi
elif [ -f ($root)/EFI/debian/grubx64.efi ]; then
chainloader ($root)/EFI/debian/grubx64.efi
elif [ -f ($root)/EFI/ubuntu/grubx64.efi ]; then
chainloader ($root)/EFI/ubuntu/grubx64.efi
elif [ -f ($root)/EFI/sles/grubx64.efi ]; then
chainloader ($root)/EFI/sles/grubx64.efi
elif [ -f ($root)/EFI/opensuse/grubx64.efi ]; then
chainloader ($root)/EFI/opensuse/grubx64.efi
elif [ -f ($root)/EFI/Microsoft/grubx64.efi ]; then
chainloader ($root)/EFI/Microsoft/grubx64.efi
elif [ -f ($root)/EFI/EFI/grubx64.efi ]; then
chainloader ($root)/EFI/EFI/grubx64.efi
else
echo File grubx64.efi not found on ESP.
echo Update 'pxegrub2_chainload' paths array with:
ls ($root)/EFI
echo The system will halt in 2 minutes or
echo press ESC to halt immediately.
sleep -i 120
halt --no-apm
fi
}
menuentry 'Chainload into BIOS bootloader on first disk' --id local_chain_hd0 {
set root=(hd0,0)
chainloader +1
}
menuentry 'Chainload into BIOS bootloader on second disk' --id local_chain_hd1 {
set root=(hd1,0)
chainloader +1
}
menuentry 'Foreman Discovery Image' --id discovery {
linuxefi boot/fdi-image/vmlinuz0 rootflags=loop root=live:/fdi.iso rootfstype=auto ro rd.live.image acpi=force rd.luks=0 rd.md=0 rd.dm=0 rd.lvm=0 rd.bootif=0 rd.neednet=0 nomodeset proxy.url=https://proxy.lan proxy.type=foreman BOOTIF=01-$mac
initrdefi boot/fdi-image/initrd0.img
}
Thanks again…i upgraded Foreman to 1.20.1 and copy the grubx64.efi file from CentOS 7. Bur now i get the following message (using the default pxegrub2_chainload):