安裝 openSUSE 後,Windows 10 項目未顯示在 GRUB 菜單中
我在同一個硬碟驅動器上安裝了 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 都遵守這一點。