Debian

Windows 沒有出現在啟動菜單中,Debian

  • August 7, 2022

我主要執行 MX Linux,偶爾需要啟動到 Windows。今天,我嘗試了,但 grub 中缺少 windows。

我安裝os-prober並確認etc/default/grub顯示GRUB_DISABLE_OS_PROBER=false. 我執行sudo update-grub並重新啟動,但 grub 中仍然沒有 Windows。

回到 MX Linux,如果我執行os-prober輸出是/dev/sda4:MX 21.1 Wildflower (21.1 ):MX:linux找不到 Windows,但 Windows 安裝在同一個 SSD 上。

我很困惑如何進行。有輸入嗎?

編輯:我已經跑了bootinfoscript。所以結果很清楚,我安裝了兩次 MX Linux,每次都安裝在不同的 SSD 上,還有一個 Windows 10 實例

引導資訊腳本結果

Windows 僅允許使用 GPT 分區的系統磁碟進行 UEFI 引導,並且僅允許使用 MBR 分區的磁碟進行舊版 BIOS 引導。

sda是 GPT 分區的,但sda4啟用了舊版 BIOS 引導標誌。並且您連結的 bootinfoscript 會檢測到i386-pc安裝在sda.

兩者sda都有sdb一個 EFI 系統分區(簡稱 ESP),但\EFI\Microsoft\Windows\bootmgfw.efi在其中任何一個上都沒有檢測到 Windows UEFI 啟動管理器 ( )。

看起來您的系統最初配置為 GPT 引導,然後您安裝了 MX 的第二個副本,同時(無論是意外還是出於無知)以舊版 BIOS 模式引導安裝程序,因此它在 GPT 上安裝了舊版 BIOS 樣式的引導載入程序-分區磁碟。而且您的 BIOS 目前顯然更喜歡傳統引導而不是 UEFI。在您的 MX 安裝嘗試之一中,您可能不小心允許安裝程序格式化sda1包含 Windows UEFI 引導載入程序的 ESP。

如果您的 BIOS 有一個設置允許您將目前的“legacy first, then UEFI”引導策略更改為“UEFI only”,請將其設置為“UEFI only”以避免將來出現這種混亂。這可能會導致您的系統引導至 MX 安裝,sdb2而不是目前 MX,根文件系統為sda4.

如果您無法更改 BIOS 的引導策略,則必須找到一種方法來確定 BIOS 菜單顯示的引導目標是 UEFI 以及哪些是舊版,並且從此時起僅使用 UEFI 引導目標。

由於 Windows UEFI 引導載入程序顯然已被破壞,因此需要重建它及其配置。如果您從 Windows 10 安裝媒體**以 UEFI 模式啟動並使用其“修復啟動”功能,它應該會自動執行正確的操作。**但是您可能希望在sdb執行此操作時暫時斷開或禁用,因此 Windows 將被迫選擇正確的磁碟來重建 UEFI 引導載入程序。(眾所周知,Windows 10 安裝程序有時會對如何選擇安裝 UEFI Windows 引導載入程序的磁碟有奇怪的想法。)

在那之後,您應該能夠進入 Windows - 但不一定進入您的任何一個 MX 安裝。下一步是讓您(可能是最新的)MX 安裝在sda4.

如果 MX Linux 具有與 Debian 類似的救援模式,則從 MX 安裝媒體以 UEFI 模式啟動,在 GRUB 啟動菜單中選擇救援模式,選擇語言環境和鍵盤,然後救援模式應該啟動:它應該會自動搜尋現有的 MX 安裝,並讓您選擇其中一個進行安裝。挑選sda4。自動掛載後,它會詢問您是否啟動網路介面。說是。然後它將為您提供一個 root shell 並建議一個chroot用於訪問已安裝安裝的命令。使用建議的命令。現在,您將在sda4安裝中有效地處於僅命令提示符模式,並且可以開始修復它。

首先,刪除包grub-pcgrub-pc-bin安裝efibootmgr, grub-efi-amd64grub-efi-amd64-bin也許還有grub-efi-amd64-signedand shim-signed(如果你認為你可以啟用安全啟動)包來代替它們。然後執行grub-install /dev/sda

在此之後,您的 BIOS 引導菜單現在應該包含指示要引導的作業系統名稱的項目:Windows Boot Manager對於 Windows,並且可能是指 MX Linux。將“MX Linux”引導項作為您的主要引導目標,您應該已準備就緒。

您還應該efibootmgr -v以 root 身份執行以查看 UEFI NVRAM 引導變數,並學習了解其輸出(這並不難,但它對 UEFI 來說是全新的,並且沒有真正的舊版 BIOS 等效項)。

有時刷新 BIOS 可能會擦除這些啟動變數,這可能會導致您的系統再次僅啟動進入 Windows。但是,如果您有efibootmgr -v列印輸出和 Linux 啟動媒體,您將能夠非常快速地修復它。

引用自:https://unix.stackexchange.com/questions/712789