Ask Your Question
1

Cannot boot other Linux distributions via the GRUB Bootloader setup by Fedora 25: initrd and linux not found

asked 2016-12-07 16:35:54 -0500

updated 2016-12-07 22:51:25 -0500

I have Fedora 25 installed on the same laptop I have Arch Linux and Ubuntu 16.04 installed (on other partitions). I have noticed that since I installed Fedora 25 on this system I cannot seem to boot Arch Linux or Ubuntu 16.04 from my boot loader as whenever I try to boot them I get an error stating that initrd and linux could not be found. Despite this I can boot Fedora 25 without an issue. When I was using the GRUB2 boot loader that Ubuntu 16.04 installed I did not have this problem, so it does seem like this error is related to Fedora 25. Any ideas how to overcome this error? If it helps here is my partition table:

Device      Type
/dev/sda1  EFI System
/dev/sda2  Linux filesystem (Ubuntu 16.04)
/dev/sda3  Linux swap
/dev/sda4  Linux filesystem (Fedora 25)
/dev/sdb1  Linux filesystem (Arch Linux)
/dev/sdb2  Linux swap

I know that if I copy my grub.cfg file from my Ubuntu 16.04 partition to /boot/grub2/grub.cfg on my Fedora 25 partition I can boot all three operating systems without a problem, but I would like a more permanent solution (as whenever this grub.cfg file is updated by DNF or w/e I am back at square 1 with the same faulty grub config file I started with).

EDIT:

Here is my /etc/grub/grub.cfg file on Ubuntu 16.04 and here is my /etc/grub2/grub.cfg file on Fedora 25.

edit retag flag offensive close merge delete

Comments

And this update of Grub didn't fix the problem?

florian gravatar imageflorian ( 2016-12-07 22:17:59 -0500 )edit

I ran sudo dnf info grub2 and it gave the version as 2.02 and release 0.37.fc25 so yeah I got that update. It hasn't made any difference, still getting this problem.

Brenton Horne gravatar imageBrenton Horne ( 2016-12-07 22:23:38 -0500 )edit

1 Answer

Sort by ยป oldest newest most voted
2

answered 2016-12-07 17:54:58 -0500

cmurf gravatar image

updated 2016-12-10 23:28:24 -0500

Bug 1353026 - Updating Grub2 w/multiple Linux OS's F24 is the only correct boot menu entry, others will not boot.

editing this because comments have too little space...

For UEFI computers the work around is to use the firmware's boot manager to load the distribution specific GRUB. The f-key to get to the boot manager is different for each firmware; on my HP it's F9 and on the Intel NUC it's F12 (I think, I get them confused, super annoying).

Basically what's going on is every distro forks and dramatically hacks GRUB (hundreds of patches) for their own purposes, and this process is causing them all to increasingly diverge from each other in incompatible ways. A possible work around for some people might be to manually add menu entries to grub.cfg that use chainloader to point to the distribution specific grubx64.efi on the EFI System partition. What this will do from Fedora's GRUB is you'll see a menu entry for Ubuntu, and choosing that will chainload the Ubuntu version of GRUB which will read the Ubuntu grub.cfg. And so on for your other distributions. But I'm not certain how reliable it'll be long term

edit flag offensive delete link more

Comments

I think is more fitting for a comment than an answer. See your link while helpful isn't a solution, it's merely a statement that this bug has been reported and where I can track it.

Brenton Horne gravatar imageBrenton Horne ( 2016-12-07 18:00:23 -0500 )edit

If the grub.cfg from ubuntu "works", see what is different about those initrd and vmlinuz entries. Perhaps you can add some "extra" entries to the grub menu that are replicas of the grub.cfg from ubuntu, ala:

sudo <your editor> /etc/grub.d/40_custom
sudo grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg

It could be the difference between how grub2 finds "/boot" and/or "/boot/efi" between your distributions. You could always post your two grub.cfg files for us. :)

lovepump gravatar imagelovepump ( 2016-12-07 21:21:20 -0500 )edit

Added that to my question. Feel free to find the solution and write it up as an answer and if it works I'll be more than happy to accept it.

Brenton Horne gravatar imageBrenton Horne ( 2016-12-07 21:53:02 -0500 )edit

When you do :

sudo ls -al /etc/grub*

what do you get? How about from within your other distributions?

Are they all installed as "EFI-capable"? Do they all use the EFI system partition? Do/did they all use grub2 as a bootloader?

On my fedora EFI-capable system the grub.cfg file is the one that resides on /boot/efi/EFI/fedora/grub.cfg and the one linked from /etc as grub2-efi.cfg. This is ultimately the file my bootloader uses, hence the -o option I suggested in my first comment. Do both ubuntu and arch also use the EFI system partition (and perhaps their own EFI-version of grub.cfg)

lovepump gravatar imagelovepump ( 2016-12-08 23:47:31 -0500 )edit

Arch Linux I've always had piggy-back off Ubuntu/Fedora's boot loader as I found it too challenging to set up its bootloader. So it doesn't really use the EFI system partition. Ubuntu does though and I've set up its fstab so that it is automatically mounted to /boot/efi. Your command returns http://paste2.org/5BwetVjn on Fedora, http://paste2.org/twhJpWGW on Arch Linux and http://paste2.org/wIUVY0IE on Ubuntu.

Brenton Horne gravatar imageBrenton Horne ( 2016-12-08 23:58:56 -0500 )edit

Question Tools

1 follower

Stats

Asked: 2016-12-07 16:35:54 -0500

Seen: 1,783 times

Last updated: Dec 10 '16