切換到其他硬碟上的 Windows 後,無法從 SSD 啟動 linux
我將磁碟從 SSD(我有 linux 作業系統)更改為 HDD(安裝了windwos 8),我已經有一段時間沒有使用過了,在我完成了我需要做的事情之後,我將磁碟切換回來(連接回 SSD使用linux debian),我無法再次啟動它,這是我得到的錯誤
罪魁禍首是 UEFI 依賴於電腦內 NVRAM 儲存引導配置,您可以通過
efibootmgr
實用程序讀取或修改;Windows 傾向於安裝 MSFT 在 UEFI 規範中恰當指定的“備份引導載入程序”\EFI\BOOT\bootx64.efi
(bootia32.efi
對於 32 位 x86),因此它第一次通過此備份引導並且很可能稍後“修復”了 NVRAM 配置(我不是這方面的專家Windows,所以這對我來說是口耳相傳,而不是經驗)。所以你可以:
- 在 Windows 的“修復”之後“修復”NVRAM(通過在 UEFI 模式下
grub-install
從支持 UEFI 的應急媒體啟動),或/boot/efi/grubx64.efi
放入的副本/boot/efi/bootx64.efi
(但這可能會在 grub 版本更新後中斷)。還有更多奇特的方法(例如使用refind boot iso鍊式載入主引導載入程序),但如果您想了解發生了什麼以及可以做什麼(以及為什麼),我寧願建議閱讀EFI 引導載入原則- 顯然@ oldfred 為您指明了正確的方向(但也可能從同一手冊中受益)所以希望他將提示重新變成答案:-)
以防您再次需要這些工具,我的ALT Rescue映像具有 refind、efibootmgr、grub 等方便。
UEFI 系統會忘記拔出驅動器的引導條目。UEFI 通常會找到 Windows 並創建新的 UEFI 條目,但不是大多數 Linux 系統。它們還應該允許您啟動與外部驅動器(安裝程序)啟動方式相同的備份或硬碟驅動器條目。Grub 現在安裝 /EFI/Boot/bootx64.efi 作為備份。對於舊版本,我們必須手動創建該條目,而 Boot-Repair 也將其作為另一個修復。
您可以從 UEFI 啟動菜單啟動備份或硬碟驅動器條目嗎?如果不是 UEFI 系統是否設置為 BIOS/CSM/Legacy 啟動?
UEFI 條目需要 ESP - efi 系統分區的 GUID 才能知道在哪裡查找引導文件。如果是 UEFI 或 BIOS,您可能需要重新創建 UEFI 條目或重新安裝 grub。最好查看詳細資訊,使用帶有實時安裝程序(第二個選項)或任何工作安裝的 ppa 版本,而不是較舊的引導修復 ISO:請複制並粘貼指向引導資訊摘要報告的連結,不要發布報告,不要使用自動修復直到審查。
https://help.ubuntu.com/community/Boot-Repair
您只需要使用 efibootmgr 來恢復正確的 UEFI 啟動項。許多人只是完全重新安裝 grub,它使用 efibootmgr 添加新條目作為 UEFI NVRAM 中的預設引導。範例 efibootmgr 條目:
man efibootmgr