Changing GRUB Errors

I have a newish Lenovo C940 laptop i7 with 16gb ram and a recently installed 1 TB ssd. Windows 11 is installed on the first 150gb of the new ssd and I have installed Fedora (Cinnamon) on the next 250gb leaving the rest as unallocated. The following is a diagram of the ssd as depicted by Window disk management:

Note that the first 3 partitions shown are Windows partitions and the remaining 4 are Fedora. Also note that the 2nd and 4th are both EFI partitions.

Everything is working properly with regard to both Windows and Fedora. However, the GRUB menu is having an issue where sometimes both Fedora and Windows boot choices show in the boot menu and sometimes only the Fedora choices show. While I’ve installed a dual boot using the Windows installer and Anaconda before, I’ve never experienced this before.

First, is the GRUB issue related to having two EFI partitions. If so, what can be done about it. Is a re-install required doing something differently in Anaconda? If the two partitions are not a problem, do you have any suggestions what is causing GRUB to act that way?

Following is my current /etc/default/grub file created during installation:

GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR=“$(sed ‘s, release .*$,g’ /etc/system-release)”
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT=“console”
GRUB_CMDLINE_LINUX=“rhgb quiet”
GRUB_DISABLE_RECOVERY=“true”
GRUB_ENABLE_BLSCFG=true

Thanks for your help.

PS: I forgot to mention that Windows Bitlocker and Secure Boot in the BIOS are disabled; if that matters.

Since fedora has its own efi partition I must assume you manually created those partitions and failed to allow fedora to share the windows efi partition. This is often a recipe for problems since the bios can only access one efi partition on most systems.

I would suggest that since you just did this install that you repeat the installation, first removing the second efi partition (partition 5) then selecting the windows efi partition (partition 1) to be mounted as /boot/efi. Be certain to not format that partition. The remaining partitions may be used as you already defined them.

1 Like

It had been a while, was following some notes, and missed that point. Thanks. I’ll do a re-install. Also, note that I also put in a /boot partition which I understand now that it is not needed on UEFI systems. I’ll delete that during the reinstall. Please let me know if that is wrong

/boot is needed as separate if using btrfs or LVM for the main file system. It is not needed if you are using ext4 for the / partition.

You cannot properly identify the partitions and should not even create them from within windows.

The standard recommended method for dual booting with windows is to install windows then from within windows shrink the file system allowing as much space as you wish to use for linux and leave that entire space unallocated.

Then perform the installation of linux into the unallocated space. Either automatic or manual partitioning is ok as long as you allow the efi partition to be shared by both windows and fedora.

I do note that it appears the windows efi partition is only 100MB. While doing the reinstall it may be of benefit to use gparted from the live media (it would need installed while booted live) and relocate the main windows partition back far enough to allow expanding the efi partition to about 250MB or larger. This is probably not critical for some time though.

Jeff. Thanks. If your 2nd paragraph (line) is regarding the use of the Windows diagram, I only did so because I thought it was a bit clearer that the “Disks” diagram. I do follow the process you outline in your 3rd and 4th paragraph. I do have gparted on a flash drive and can use it to modify the Windows efi partition. Thanks for the help. It should be perfect this time.

Most of the times I installed Fedora after Windows, I used default partitioning in Anaconda which created a second EFI partition. I never manually created a second EFI partition. I never noticed any choice to “allow fedora to share the windows efi partition”.

I don’t know what Bill did to get a second EFI. So maybe your suggestion to do it over will fix things.

I always fix the original EFI partition using contents from the new (Fedora) EFI partition and then delete the new one. I haven’t done that recently enough to be sure I wouldn’t miss a step if I said to do that now. But if installing again still creates an extra EFI, it isn’t very hard to manually clean it up.

In my experience this happens when installing to a second drive and not allowing the installer to write to the drive with the already existing windows installation. For me it has always used the existing efi partition if the installer is allowed to write to that drive.

The option to allow sharing of the efi partition is not explicitly there but seems automatic as long as the installer is allowed to write to the drive containing that efi partition.

My experience has been different from your experience. I am talking about single drive situations: Windows has been shrunk to leave unpartitioned space on that drive (which contains Windows EFI, recovery and C: partitions). Then Anaconda is used selecting just that drive and default partitioning.

To me that seems strange, but who really knows the cause.
Fedora now creates an efi partition that is noticeably larger than the seemingly default 100MB that in the past has often used by windows for efi. Possibly that size may be related, though my efi partition only contains about 18MB of data with only fedora installed on my desktop.

With my laptop which came with Win10 the efi partition is 256MB and set up with dual boot has only 43M of data there.

I installed Fedora on a Windows system and have just one EFI partition, but it is 650MB (and using 104MB). Maybe the installer creates a second EFI partition when the existing EFI partition is too small.

My wife’s Zenbook laptop is one of many systems on which I installed Fedora with default partitioning after shrinking C:
It did create an extra EFI and I manually adjusted things, including copying many files from the extra EFI to the original (before deleting the extra EFI).

The EFI is 260MB (out of a 1TB drive) and has only 67MB used including all the Fedora contents I copied there.

I never adjusted the size of that original EFI. So the creation of an extra EFI is apparently not driven by the original being too small.

While not difficult, it is not exactly intuitive. After setting up my / and /home partitions, if you select “done” at that point, you will get a message regarding the need for the /boot/efi parttition. The first time I did this, I clicked the + at the lower left and set up a new /boot/efi. That is what led to my OP above. This time, after setting up / and /home, I selected the existing /boot/efi from the “unknown” (windows) list and simply inserted the “mount point” in the upper box (you can’t do anything in the others). Again, not intuitive. It took me a couple of tries to figure out what was correct as there is no feed back on that last step. While the /boot/efi line is still selected, click done and after accepting the results, it will proceed with installation and you will end up with a shared /boot/efi partition. Wheew! Thanks again to JeffV for your help. All seems to be perfect now.

I assume all that is in the non default partitioning.

I spent a lot of time getting confused by the UI in custom partitioning. If I recall correctly, what I wanted to do was normally greyed out and I never understood why.

I’m sure, if you understood that UI, there is always a correct way to select the existing EFI for the mount point /boot/efi. But it was other confusion in what is meant by steps within custom partitioning that led me to my current method of always choosing default partitioning, never trying within Anaconda to fix anything that gets wrong and always fixing it myself (with gparted and other tools) after the Fedora install is done.

So I never even got to the point of getting a message like that about the need for /boot/efi. The default partitioning usually incorrectly creates a new EFI, and sometimes uses the existing one, but always has at least one without any extra user action beyond selecting default.

Anyway, I’m glad you got it all solved on your system.

Yes. I always select “custom” because I want a separate /home partition and I want to keep ext formating for simplicity and familiarity. I have no need for the benefits the other formats offer.

PS: Is there a way to label this thread “solved”. Probably simple. I’m just not seeing it.

PS2: JeffV, a couple of times above you mentioned “allowing Anaconda to write to the existing efi partition”. Did I do it the correct way or is there a better way?

Since you used custom config it was required that you do so the way you did. If you had used default it ‘should’ have also automatically shared the existing efi partition. It does so for me though John seems to have had trouble with it doing so.

To mark it solved simply select the check box under the post that most accurately provides the details of your solution.

OK. It would be very helpful if the developers would include a simple prompt to do that and then provide some sort of feedback to indicate it was done properly. At the very least, add it to the list (after you click “done”) indicating the actions that will be done during installation.
Thanks again for the help.

You may be onto something.

I suspect that the lack of prompts is because the default auto partitioning is for the inexperienced and it is expected that those who are experienced enough to go the custom partitioning route should already understand the needed configs. It does not take into account those who are still needing more assistance but moving forward anyway.

Possibly a better approach instead of adding to the installer would be to provide a detailed doc to clearly show what happens at that stage of the installation. Then users would have a reference to guide them.

In my humble opinion, I would do both. When I first clicked “done” without creating the efi partition, the warning message got my attention saying one is needed and even said what to name it (/boot/efi). However, it doesn’t say what to do to get one and you are left with the only apparent option but to follow the same process as for the other partitions, click the “+” and create a new one. That warning message would be a good place to explain what to do if you want/need to use the existing partition. Or, how easy would it be to have a check box if you want to use the existing one and have it happen automatically if you check it (that would be neat - even if you are smart enough to know what to do)? Even after selecting the existing efi partition from the “unknown” list and one knows what to name it, it just sits there and does nothing and one is not sure that he/she has done it correctly. It should join the list of other completed partitions and then be included in the list of “items to be completed during installation” on the next page (after you select “done”). I think once that is done, very little documentation would be needed (if any).

Not quite.
You are left with attaching a partition (existing or new) to the /boot/efi mount point. You also have the option to format the partition or not. It is user choice at that stage.

The installer does expect a user using custom install to be informed as to the proper structure to create.

You might approach this with filing a bug or with an RFE for the anaconda installer.

My point was that at that stage the process of creating a new one is there and understood as it is the same as for the other partitions. The process of adding a mount point for an existing partition is not readily apparent for those of us with limited knowledge or experience. Nor, is it very intuitive once you get started.
Under what conditions would you want/need to format an existing /boot/efi partition? Also, I think I remember that the “format” function was inoperable when I selected the existing /boot/efi partition from the “unknown” list.