Windows

安裝 openSUSE 後,Windows 10 項目未顯示在 GRUB 菜單中

  • January 18, 2019

我在同一個硬碟驅動器上安裝了 openSUSE Leap 15 和我的 Windows 10,但在分配的可用空間中。我期待雙啟動選項,但 Windows 10 項目根本沒有出現在 GRUB 菜單中。所有分區(包括windows EFI系統分區)都還在。但我不知道如何恢復 Windows 啟動。我怎樣才能再次重新啟動我的 Windows(不失去 openSUSE)?

這是硬碟驅動器的目前狀態:

Device: /dev/sda
Size: 232.89 GiB
Encrypted: No
Device Path: pci-0000:00:1f.2-ata-1
Device ID 1: ata-Samsung_SSD_850_EVO_250GB_S21NNXAG700322J
Device ID 2: scsi-0ATA_Samsung_SSD_850_S21NNXAG700322J
Device ID 3: scsi-1ATA_Samsung_SSD_850_EVO_250GB_S21NNXAG700322J
Device ID 4: scsi-35002538d4028bcda
Device ID 5: scsi-SATA_Samsung_SSD_850_S21NNXAG700322J
Device ID 6: wwn-0x5002538d4028bcda

和一張圖片:

在此處輸入圖像描述

請驗證您目前已安裝的 GRUB 軟體包的名稱。如果它們包含類似的內容grub2-i386-pc(或/boot/grub2/i386-pc存在目錄),則您不小心以傳統 BIOS 模式啟動了 SuSE 安裝程序,因此它安裝了 GRUB 引導載入程序的傳統 BIOS 版本,它自然無法啟動任何使用較新 UEFI 引導的作業系統方案。

要解決這個問題:

首先,了解如何以 UEFI 模式將系統引導至 Linux 並訪問您的 OpenSUSE 安裝。在Rescue System模式下的 openSUSE 安裝媒體,或 LiveCD/USB 可能是合適的。這是 openSUSE 文件中相關說明的連結

通過執行驗證您實際上處於 UEFI 模式efibootmgr -v。如果它響應EFI variables are not supported on this system您,則無法在 UEFI 模式下啟動,而是在傳統 BIOS 模式下啟動。(在傳統 BIOS 模式下啟動會禁用 UEFI 執行時服務,這是用於訪問 EFI NVRAM 變數的機制。)

您可能需要更改您的 UEFI BIOS 設置以優先使用 UEFI 引導而不是舊版 BIOS,或者徹底禁用舊版兼容性(通常稱為 CSM = 兼容性支持模組)。此時的實際過程特定於您的硬體和 UEFI BIOS。請查閱您的硬體文件。

一旦您設法以 UEFI 模式引導系統並訪問您的 openSUSE 安裝,請刪除所有目前的 GRUB 引導載入程序包。然後將您的 EFI 系統分區掛載為/boot/efi並完全重新安裝 GRUB2。如果包管理要求您選擇實際版本的 GRUB2 硬體相關包,請grub2-x86_64-efi選擇grub2-i386-pc.

通常,GRUB 的完全重新安裝包含一個腳本,該腳本將使用該efibootmgr工具自動更新 EFI NVRAM 變數。使用efibootmgr -v,您應該會看到引導選項列表,類似於 UEFI BIOS 設置中可用的選項。在(重新)安裝 UEFI 版本的 GRUB 後,該列表應包括 OpenSUSE 的新條目,指定grubx64.efi引導載入程序文件在 EFI 系統分區中的位置。如果由於某種原因沒有發生這種情況,您可以使用如下命令手動創建它:

efibootmgr -c -d /dev/sda -L "openSUSE" -l '\EFI\opensuse\grubx64.efi'

請注意,該efibootmgr -d選項指定包含 EFI 系統分區的整個磁碟設備,而不是分區本身。

EFI 系統分區不是 Windows 獨有的:在 UEFI 系統中,所有已安裝的作業系統都應該將它們的主引導載入程序放在那裡。甚至有一個標準化的目錄模式來避免引導載入程序之間的衝突:每個供應商都應該將他們的引導載入程序放在\EFI\<vendor name>\目錄中,openSUSE 和 Microsoft 都遵守這一點。

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