Bug 1643802

Summary: GRUB fails to boot on EFI after upgrade from F27 to F29
Product: [Fedora] Fedora Reporter: Daniel Miranda <danielkza2>
Component: grub2Assignee: Peter Jones <pjones>
Status: CLOSED EOL QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: urgent Docs Contact:
Priority: unspecified    
Version: 29CC: agander, fedora, lkundrak, marco.ce89, pjones, yves.lecuyer.linfedora
Target Milestone: ---   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2019-11-27 21:24:28 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Daniel Miranda 2018-10-28 23:35:30 UTC
Description of problem:

Activating a boot entry fails with the following error message:


error: ../../grub-core/kernel/dl.c:431:symbol 'grub_efi_allocate_pages' not found.



Version-Release number of selected component (if applicable):


GRUB 2.03 (it's the only version info I can gather from the GRUB prompt)


How reproducible:

Always


Steps to Reproduce:

Try to boot and choose any boot entry.


Actual results:

System is unusable after upgrade.


Expected results:

System is usable after upgrade.

Comment 1 Yves L'ECUYER 2018-11-12 22:39:56 UTC
On my HP Elitebook 8740w I get the same behavior !
The secure boot on this PC is Not available, because UEFI monitor implementation is too week, so the EFI boot process pass by the fallback prog.:
EFI/BOOT/fbx64.efi
and  On the grubmenu chooser, whatever Linux entry of my multiboot PC I choose,  I get a grub error:
- - - - - - -
 error ../../grub-core/kern/dl.c:431:symbol  'grub_efi_allocate_pages' not found.
  press any key to continue
- - - - - -

Only the chain entry toward windows is working !

So IT IS a severe bug !

Comment 2 Yves L'ECUYER 2018-11-12 23:53:19 UTC
I did not reproduce this boot so simply !!
So now I need to pass first by navigation in EFI file system, and chose
EFI/fedora/shimx64-fedora.efi
to arrive on grub menu .

Comment 3 Yves L'ECUYER 2018-11-14 20:00:41 UTC
Bug TURNAROUND
==============



First :
=====To get each time the grubmenu when you have an old buggy UEFI monitor, see explanation in bug :1512410
https://bugzilla.redhat.com/show_bug.cgi?id=1512410
comment 59. No more fedora 26 efi component needed


Second :
====
Once arrived on grubmenu, and you get the problem signalled in this bug report by Daniel MIRANDA, the buggy part is:
 the programm EFI/fedora/grubx64.efi itself 
coming from package grub2-efi-x64-2.02-62.fc29.x86_64

SO Get the programm /boot/efi/EFI/fedora/grubx64.efi 
from Fedora 28 package
grub2-efi-x64-2.02-38.fc28.x86_64.rpm, and just put it in place of EFI/fedora/grubx64.efi provided by Fedora29 standard repos.

Don't make a 
# dnf downgrade grub2-efi-x64-2.02-38.fc28.x86_64.rpm
or the next time you'll made a global update the good programm will be erased by bad one, unless since then, grub2-efi-x64 for Fedora 29 has been corrected !!!!



NOTE
======
TO DO IT:
(once grub2-efi-x64-2.02-38.fc28.x86_64.rpm,has been downloaded from any fedora 28 repos) :
#  cd  /root  (or any other neutral place !)
# rpm2cpio grub2-efi-x64-2.02-38.fc28.x86_64.rpm \
      > grub2-efi-x64-2.02-38.fc28.x86_64.cpio
# cpio -iumdv < grub2-efi-x64-2.02-38.fc28.x86_64.cpio
And then you have it in ./boot/efi/EFI/fedora/grubx64.efi
So
keep warm your bad prog !!!!:
# mv /boot/efi/EFI/fedora/grubx64.efi /boot/efi/EFI/fedora/grubx64.efi.f29
and put the good one viewable in  /boot/efi/EFI/fedora/:

Always from the directory where you extracted the cpio (/root in this example):
# cp ./boot/efi/EFI/fedora/grubx64.efi /boot/efi/EFI/fedora/grubx64.efi.f28

And then:
# cd /boot/efi/EFI/fedora/
# cp grubx64.efi.f28 grubx64.efi
So that you will have always the good programm grubx64.efi.f28, quite in place if ever an update  scratches grubx64.efi !

AND possibly if you had previously an endless booting loop, and you didn't care about secure EFI boot, because anyway, your UEFI monitor is unable to do so:
# cp grubx64.efi.f28 /boot/efi/EFI/BOOT/BOOTX64.EFI

Comment 4 Marco Cè 2018-11-27 17:06:25 UTC
I experience the same issue since I upgraded from F28 to F29.

I noticed that if a manually change the grub commands
  linuxefi -> linux, 
  initrdefi -> initrd,
I am able to boot.

If I update manually grub.cfg with
  grub2-mkconfig -o /etc/grub2-efi.cfg
where /etc/grub2-efi.cfg is a link to /boot/efi/EFI/fedora/grub.cfg, working grub entries with linux and initrd (without -efi suffix) are generated for all installed kernels. I can verify that looking into /boot/efi/EFI/fedora/grub.cfg.
If I reboot, everything works correctly.

However, when a new kernel is installed by the package manager, an entry with linuxefi and initrdefi is added to /boot/efi/EFI/fedora/grub.cfg, and that fails at the next boot, so there is still a bug.

Comment 5 Ben Cotton 2019-10-31 19:50:10 UTC
This message is a reminder that Fedora 29 is nearing its end of life.
Fedora will stop maintaining and issuing updates for Fedora 29 on 2019-11-26.
It is Fedora's policy to close all bug reports from releases that are no longer
maintained. At that time this bug will be closed as EOL if it remains open with a
Fedora 'version' of '29'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, simply change the 'version' 
to a later Fedora version.

Thank you for reporting this issue and we are sorry that we were not 
able to fix it before Fedora 29 is end of life. If you would still like 
to see this bug fixed and are able to reproduce it against a later version 
of Fedora, you are encouraged  change the 'version' to a later Fedora 
version prior this bug is closed as described in the policy above.

Although we aim to fix as many bugs as possible during every release's 
lifetime, sometimes those efforts are overtaken by events. Often a 
more recent Fedora release includes newer upstream software that fixes 
bugs or makes them obsolete.

Comment 6 Ben Cotton 2019-11-27 21:24:28 UTC
Fedora 29 changed to end-of-life (EOL) status on 2019-11-26. Fedora 29 is
no longer maintained, which means that it will not receive any further
security or bug fix updates. As a result we are closing this bug.

If you can reproduce this bug against a currently maintained version of
Fedora please feel free to reopen this bug against that version. If you
are unable to reopen this bug, please file a new report against the
current release. If you experience problems, please add a comment to this
bug.

Thank you for reporting this bug and we are sorry it could not be fixed.