1

I was using CentOS 8 in my Laptop dual with Windows 10 Pro, recently I made an update and the Menu is not shown, only boot on Windows 10 Pro directly.

The Boot Mode Originally was in UEFI mode. I don't changed!

I changed the Boot Priority Order

From

enter image description here

To enter image description here

I restarted, But the Menu doesn't appears!

Later, I selected Legacy Options enter image description here

Restarted, but it change doesn’t works enter image description here

This one doesn’t work either.

Originally Security Boot was Enabled enter image description here

Later I disabled some Security options like:

Security Boot and Security Chip I update to Disabled enter image description here I would like to recover the menu, in order to select which OS I want to use (CentOS 8, or Windows 10 PRO).

Unfortunately, that Changes doesn't works!

My Laptop is a Lenovo, but I'm not sure what BIOS settings I need to select in order to recover the Menu.

What settings boot options should I select?

Thanks for your Help.

EDIT 3:

Previously I had this settings Set Windows like default entry with efibootmgr, but showing menu And I had the previous Issue I can’t get to my CentOS 8, Failed to switch root, '/sysroot'

Now I have

C:\Users
λ bcdedit /enum firmware

Firmware Boot Manager
---------------------
identifier              {fwbootmgr}
displayorder            {1fa1f7db-9958-11ea-a843-806e6f6e6963}
                        {1fa1f7e0-9958-11ea-a843-806e6f6e6963}
                        {bootmgr}
                        {1fa1f7dd-9958-11ea-a843-806e6f6e6963}
                        {1fa1f7de-9958-11ea-a843-806e6f6e6963}
                        {1fa1f7df-9958-11ea-a843-806e6f6e6963}
                        {1fa1f7e1-9958-11ea-a843-806e6f6e6963}
                        {1fa1f7e2-9958-11ea-a843-806e6f6e6963}
                        {1fa1f7e3-9958-11ea-a843-806e6f6e6963}
timeout                 0

Windows Boot Manager
--------------------
identifier              {bootmgr}
device                  partition=\Device\HarddiskVolume1
path                    \EFI\Microsoft\Boot\bootmgfw.efi
description             Windows Boot Manager
locale                  es-ES
inherit                 {globalsettings}
default                 {current}
resumeobject            {a8801e99-ce19-11ea-aa82-c858c03abd0c}
displayorder            {current}
toolsdisplayorder       {memdiag}
timeout                 0

Firmware Application (101fffff)
-------------------------------
identifier              {1fa1f7d9-9958-11ea-a843-806e6f6e6963}
description             Setup
badmemoryaccess         Yes

Firmware Application (101fffff)
-------------------------------
identifier              {1fa1f7da-9958-11ea-a843-806e6f6e6963}
description             Boot Menu
badmemoryaccess         Yes

Firmware Application (101fffff)
-------------------------------
identifier              {1fa1f7db-9958-11ea-a843-806e6f6e6963}
description             NVMe: SKHynix_HFM512GDHTNI-87A0B
badmemoryaccess         Yes

Firmware Application (101fffff)
-------------------------------
identifier              {1fa1f7dc-9958-11ea-a843-806e6f6e6963}
description             UEFI Diagnostics
badmemoryaccess         Yes

Firmware Application (101fffff)
-------------------------------
identifier              {1fa1f7dd-9958-11ea-a843-806e6f6e6963}
description             ATA HDD:
badmemoryaccess         Yes

Firmware Application (101fffff)
-------------------------------
identifier              {1fa1f7de-9958-11ea-a843-806e6f6e6963}
description             ATA HDD:
badmemoryaccess         Yes

Firmware Application (101fffff)
-------------------------------
identifier              {1fa1f7df-9958-11ea-a843-806e6f6e6963}
description             ATAPI CD:
badmemoryaccess         Yes

Firmware Application (101fffff)
-------------------------------
identifier              {1fa1f7e0-9958-11ea-a843-806e6f6e6963}
description             USB HDD: SanDisk Ultra Fit
badmemoryaccess         Yes

Firmware Application (101fffff)
-------------------------------
identifier              {1fa1f7e1-9958-11ea-a843-806e6f6e6963}
description             PCI LAN:
badmemoryaccess         Yes

Firmware Application (101fffff)
-------------------------------
identifier              {1fa1f7e2-9958-11ea-a843-806e6f6e6963}
description             USB FDD:
badmemoryaccess         Yes

Firmware Application (101fffff)
-------------------------------
identifier              {1fa1f7e3-9958-11ea-a843-806e6f6e6963}
description             USB CD:
badmemoryaccess         Yes

C:\Users
λ

EDIT 2: I was using a USB3.0 HDMI Video Capture, I'm using OBS I was able to record a video when I tried to check with https://sourceforge.net/projects/supergrub2/files/2.04s2-beta2/super_grub2_disk_2.04s2-beta2/supergrub2-2.04s2-beta2-multiarch-USB.img.zip/download Here the videos.

https://drive.google.com/file/d/1fpidK2-fujdPwT7PhoFL40cuRfy8rPQ6/view https://drive.google.com/file/d/1IHiZBCssViHakxLly3HudC4eKiShvAzM/view

NOTE 1: I have access to Read/Write from Windows 10 over Linux Partitions using EXT4 FileSystem.

enter image description here enter image description here enter image description here

7
  • It's not clear what you changed, since all you have are static images of BIOS settings. What did you change? Did you change from the Legacy bootloader to UEFI? Because I don't see an entry for a UEFI entry for CentOS in the boot item list.
    – jsbillings
    Jul 26 at 14:46
  • If you have UEFI installs, do not change to legacy. I think this also works with Centos: Lets see details, use ppa version with your live installer (2nd option) or any working install, not Boot-Repair ISO: Please copy & paste the pastebin link to the Boot-info summary report ( do not post report), do not run the auto fix till reviewed. help.ubuntu.com/community/Boot-Repair
    – oldfred
    Jul 26 at 15:23
  • @oldfred Sorry, I did not understand "Lets see details, use ppa version with your live installer (2nd option) or any working install, not Boot-Repair ISO"
    – Anita
    Jul 26 at 15:31
  • @oldfred this is CentOS, the Ubuntu boot repair won't work.
    – jsbillings
    Jul 26 at 16:00
  • You don't need to add pictures of anything but the file structure that has the EFI volume. All the screenshots of the other filesystems aren't really important.
    – jsbillings
    Jul 26 at 18:15
1

Did you make a flash BIOS update, or do something else that could have reset the BIOS settings to factory defaults?

Some UEFI implementations will forget the OS-specific boot settings when that happens, and then the fallback bootloader \efi\boot\bootx64.efi on the ESP partition will get executed, and typically it will be a backup copy of the Windows bootloader. Then Windows will "self-heal" by re-writing its own boot entry to the first slot.

Assuming nothing else has gone wrong, this would be fixable by booting any live Linux media or rescue mode (you don't even have to mount the root filesystem of your installed OS), identifying the disk containing your ESP partition (here I'll assume it's /dev/nvme0n1 which may or may not be correct for you) and then running this efibootmgr command as root:

efibootmgr -c -d /dev/nvme0n1 -L "CentOS" -l \\efi\\centos\\shimx64.efi

If your ESP is not the first partition on the disk, you might need to add a -p <ESP partition number> option to that command line.

This should make a new boot entry named "CentOS" appear in the BIOS "Boot Priority Order" list. Just move it into the first position in the list if it's not already there, and the system should again boot into the GRUB boot menu you're familiar with.

1
1

I suggest you boot into the rescue mode from a CentOS 8 boot ISO, and once you've got a chroot on the CentOS system, run the following:

dnf reinstall grub2-efi-x64 shim-x64

which should reinstall your GRUB executables (if they are missing)

then you need to add the GRUB entry to the EFI boot list:

efibootmgr -c -d /dev/<disk> -p 1  -l \\EFI\\centos\\shimx64.efi -L "CentOS 8"

You will need to replace <disk> with the partition where the EFI volume is stored. Use blkid to find something labelled EFI.


Another solution would be to create the EFI entry from Windows. I haven't done this recently, but this worked according to my notes:

Show all UEFI entries

  • Run command: bcdedit /enum firmware
  • This just shows existing setup, doesn’t make any changes

Creates a copy of the Windows bootloader entry

  • Run command: bcdedit /copy {bootmgr} /d "CentOS"
  • Returns a {GUID}, will call $guid from now on. When doing this manually, I copy the GUID into the clipboard and paste it in the following commands.
  • This just duplicates the EFI entry for windows

Set the EFI executable

  • Run command: bcdedit /set $guid path \EFI\centos\grubx64.efi
  • This changes the EFI executable path for the new entry to be the linux bootloader

Set the linux bootloader to be default

  • Run commands:

    bcdedit /set {fwbootmgr} default $guid

    bcdedit /set {fwbootmgr} displayorder $guid /addfirst

Reboot computer

  • Run command: wpeutil.exe reboot
5
  • I have R/W Access to Linux Partition's from Windows, You could make some change directly to the Linux files. Unfortunately I don't know what changes I should make. Do you think that what you propose would work if I made the changes directly from Windows?
    – Anita
    Jul 26 at 16:13
  • It’s possible to modify the boot entries from Windows but it won’t produce the menu you used to have. You really need to boot off a rescue image.
    – jsbillings
    Jul 26 at 17:00
  • I added notes I took to do something like this (mine was to launch the bootloader of the installer but it should let you launch the GRUB executable).
    – jsbillings
    Jul 26 at 18:12
  • Thanks, In EDIT 3 I run bcdedit /enum firmware But I don't know what *identifier*/$guid I need to select and bcdedit /set {fwbootmgr} default $guid. Where/How I get the {fwbootmgr} value?. I noted that Previously I make this question unix.stackexchange.com/q/654060/400726 related to efibootmgr and this Question: unix.stackexchange.com/q/607292/400726 related to problem with UUID.
    – Anita
    Jul 26 at 20:15
  • The “{fwbootmgr}” string isn’t a variable, but a literal string that bcdedit uses. I suggest reading this page to see what I mean. docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/… I only use a placeholder “$guid” in the second step.
    – jsbillings
    Jul 26 at 20:59

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.