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

  • 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 '21 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. https://help.ubuntu.com/community/Boot-Repair – oldfred Jul 26 '21 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" –  Jul 26 '21 at 15:31
  • @oldfred this is CentOS, the Ubuntu boot repair won't work. – jsbillings Jul 26 '21 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 '21 at 18:15
  • If using the ppa does not work, then running the live ISO will. Boot-Repair primarily uses standard Linux tools. – oldfred Jul 26 '21 at 19:05
  • I must say, that with Tool described on EDIT 2 supergrub2, I solve my problem. Unfortunately, I was testing several Options, and I don't remember what option do it! –  Jul 26 '21 at 23:12

2 Answers2

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
jsbillings
  • 24,406
  • 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? –  Jul 26 '21 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 '21 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 '21 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 https://unix.stackexchange.com/q/654060/400726 related to efibootmgr and this Question: https://unix.stackexchange.com/q/607292/400726 related to problem with UUID. –  Jul 26 '21 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. https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/bcd-system-store-settings-for-uefi I only use a placeholder “$guid” in the second step. – jsbillings Jul 26 '21 at 20:59
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.

telcoM
  • 96,466
  • Here some videos (these aren't VM) https://drive.google.com/file/d/1fpidK2-fujdPwT7PhoFL40cuRfy8rPQ6/view https://drive.google.com/file/d/1IHiZBCssViHakxLly3HudC4eKiShvAzM/view –  Jul 26 '21 at 18:03