![显示所有 UEFI 条目](https://linux22.com/image/193501/%E6%98%BE%E7%A4%BA%E6%89%80%E6%9C%89%20UEFI%20%E6%9D%A1%E7%9B%AE.png)
我在我的笔记本电脑上使用CentOS 8
dual with Windows 10 Pro
,最近我做了更新,菜单不显示,只能Windows 10 Pro
直接启动。
最初Boot Mode
处于UEFI
模式中。我没变!
我改变了Boot Priority Order
从
我重新启动,但菜单没有出现!
这个也行不通。
后来我禁用了一些安全选项,例如:
Security Boot
我Security Chip
更新到Disabled
我想恢复菜单,以便选择我要使用的操作系统(
CentOS 8
、 或Windows 10 PRO
)。
不幸的是,这种改变不起作用!
我的笔记本电脑是 Lenovo 笔记本电脑,但我不确定需要选择哪些 BIOS 设置才能恢复菜单。
我应该选择哪些设置启动选项?
感谢您的帮助。
编辑3:
以前我有这个设置使用 efibootmgr 将 Windows 设置为默认条目,但显示菜单我有上一期我无法访问我的 CentOS 8,无法切换 root,'/sysroot'
我现在有
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
λ
编辑2:我使用的是 USB3.0 HDMI 视频捕捉,我使用的是 OBS,当我尝试检查时,我能够录制视频https://sourceforge.net/projects/supergrub2/files/2.04s2-beta2/super_grub2_disk_2.04s2-beta2/supergrub2-2.04s2-beta2-multiarch-USB.img.zip/download这里是视频。
https://drive.google.com/file/d/1fpidK2-fujdPwT7PhoFL40cuRfy8rPQ6/view https://drive.google.com/file/d/1IHiZBCssViHakxLly3HudC4eKiShvAzM/view
注1:我可以使用 EXT4 文件系统从 Windows 10 通过 Linux 分区进行读/写。
答案1
您是否进行了闪存 BIOS 更新,或者执行了其他可能将 BIOS 设置重置为出厂默认设置的操作?
当发生这种情况时,一些 UEFI 实现会忘记特定于操作系统的启动设置,然后\efi\boot\bootx64.efi
ESP 分区上的后备启动加载程序将被执行,通常它将是 Windows 启动加载程序的备份副本。然后 Windows 将通过将自己的启动项重写到第一个插槽来“自我修复”。
假设没有其他问题,这可以通过启动任何实时 Linux 媒体或救援模式来修复(您甚至不必挂载已安装操作系统的根文件系统),识别包含 ESP 分区的磁盘(这里我将假设它对/dev/nvme0n1
您来说可能正确,也可能不正确),然后efibootmgr
以 root 身份运行此命令:
efibootmgr -c -d /dev/nvme0n1 -L "CentOS" -l \\efi\\centos\\shimx64.efi
如果您的 ESP 不是磁盘上的第一个分区,您可能需要-p <ESP partition number>
向该命令行添加一个选项。
这将使名为“CentOS”的新启动项出现在 BIOS“启动优先顺序”列表中。如果它尚不存在,只需将其移动到列表中的第一个位置,系统应该再次启动到您熟悉的 GRUB 启动菜单。
答案2
我建议你启动进入救援模式从 CentOS 8 启动 ISO 中启动,一旦您在 CentOS 系统上获得了 chroot,请运行以下命令:
dnf reinstall grub2-efi-x64 shim-x64
这应该重新安装您的 GRUB 可执行文件(如果丢失)
然后您需要将 GRUB 条目添加到 EFI 启动列表中:
efibootmgr -c -d /dev/<disk> -p 1 -l \\EFI\\centos\\shimx64.efi -L "CentOS 8"
您需要替换<disk>
为存储 EFI 卷的分区。用于blkid
查找标有 EFI 的内容。
另一种解决方案是从 Windows 创建 EFI 条目。我最近没有这样做,但根据我的笔记,这是有效的:
显示所有 UEFI 条目
- 运行命令:
bcdedit /enum firmware
- 这仅显示现有设置,不进行任何更改
创建 Windows 引导加载程序条目的副本
- 运行命令:
bcdedit /copy {bootmgr} /d "CentOS"
- 返回一个{GUID},从现在开始将调用$guid。手动执行此操作时,我将 GUID 复制到剪贴板并将其粘贴到以下命令中。
- 这只是复制 Windows 的 EFI 条目
设置EFI可执行文件
- 运行命令:
bcdedit /set $guid path \EFI\centos\grubx64.efi
- 这会将新条目的 EFI 可执行路径更改为 linux 引导加载程序
将 linux bootloader 设置为默认
运行命令:
bcdedit /set {fwbootmgr} default $guid
bcdedit /set {fwbootmgr} displayorder $guid /addfirst
重新启动计算机
- 运行命令:
wpeutil.exe reboot