我同时安装了 Windows 10 和 Linux。我使用了 UEFI。我的设置很复杂。首先我安装了 Windows,禁用了快速启动,然后安装了带有 Grub 的 Manjaro,但我更喜欢 rEFInd,所以我通过 chroot 安装了它并删除了 grub。
一切都运行完美,但在周年更新之后,当我重新启动时,我发现 rEFInd 已被 Windows Bootloader 取代,并且快速启动再次被启用。
为了修复它,我重新 chroot 并安装了 refind。它在第一次启动 Windows 之前一直有效。当我启动 Windows 时,refind 一直被删除。
我决定从 efi 分区中删除所有文件。再次安装了 refind。但现在我无法启动 Windows。我尝试根据以下问题通过紧急控制台恢复 Windows 引导加载程序: 如何从 Windows 修复 Windows 10 启动加载程序
但它不能修复 Windows 启动,而是我的 UEFI 在任何分区上都看不到任何引导加载程序。
我的分区:
sda 8:0 0 931,5G 0 disk
├─sda1 8:1 0 300M 0 part
├─sda2 8:2 0 100M 0 part /boot/efi
├─sda3 8:3 0 128M 0 part
├─sda4 8:4 0 310,5G 0 part
├─sda5 8:5 0 450M 0 part
├─sda6 8:6 0 390,6G 0 part /mnt/1A6D432B224C53B6
├─sda7 8:7 0 221G 0 part /
└─sda8 8:8 0 8,4G 0 part [SWAP]
问题 1:如果 Windows 引导加载程序已从 EFI 分区中完全删除,如何恢复它?
问题 2:如何强制 Windows 在更新后不破坏我的引导加载程序?
PS:每次恢复 rEFInd 都很耗时。:(
答案1
“我尝试根据以下问题通过紧急控制台恢复 Windows 引导加载程序:如何从 Windows 修复 Windows 10 引导加载程序”
与 UEFI 启动无关。那里回答的问题是关于 MBR 启动的。
在 UEFI 引导扇区和 MBR 不用于引导!
UEFI 固件启动管理器正在直接加载操作系统加载器/启动管理器!
例如,UEFI 启动管理器直接加载 Windows 启动管理器或直接加载 GRUB(Linux 加载器)。
要修复 Windows 启动环境,您需要一个简单的命令:
bcdboot c:\windows /s V:
其中 c:是 Windows 分区,V:是 EFI 系统分区。
不要忘记以 UEFI 方式启动 Windows 恢复 USB/DVD!
更多细节 -修复 Windows BCD。
笔记:
1) bcdboot 修复完整的启动环境(不仅仅是 BCD)。
2)每次 Windows 升级时,“快速启动”都会重置为默认值!
3)“快速启动”是 Windows 设置(在电源选项中),“快速启动”是固件设置。