我同時安裝了 Windows 10 和 Linux。我用的是UEFI。我的設定很複雜。首先我安裝了Windows,停用了Fast Boot,然後用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 引導程式:How to fix Windows 10 boot loader from Windows”
與 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設定(在電源選項中),「快速啟動」是韌體設定。