Windows

Grub 辨識但不啟動視窗

  • November 13, 2020

我正在執行安裝在 M.2 SSD (nvme0n1) 上的 Manjaro 20。並且 Windows 安裝在單獨的 SSD (sdb) 上。

從 grub 啟動到 Linux 可以完美執行,但是當我想從 grub 啟動到 Windows 時,我收到以下錯誤:

error: no such device: 9287-5622
error: disk `hd1,gpt1` not found.

我已經嘗試過這篇文章中列出的解決方案,比如更新 grub、將 grub 移動到不同的磁碟、重新安裝 grub 等。但它們都沒有奏效。

奇怪的是,如果我使用啟動菜單 (F9) 啟動 Windows,Windows 啟動正常,如果我從 Windows 重新啟動到 grub,Windows 選項將正確啟動視窗。只有在啟動到 Manjaro 和 Windows 後,我才會收到錯誤消息。

編輯:

lsblk輸出

NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
loop0         7:0    0   3,3M  1 loop /var/lib/snapd/snap/exercism/5
loop1         7:1    0  30,9M  1 loop /var/lib/snapd/snap/snapd/9607
loop2         7:2    0 126,8M  1 loop /var/lib/snapd/snap/signal-desktop/331
loop3         7:3    0  97,7M  1 loop /var/lib/snapd/snap/core/10185
loop4         7:4    0 163,7M  1 loop /var/lib/snapd/snap/spotify/41
loop5         7:5    0  55,3M  1 loop /var/lib/snapd/snap/core18/1885
loop6         7:6    0  30,9M  1 loop /var/lib/snapd/snap/snapd/9721
loop7         7:7    0 161,4M  1 loop /var/lib/snapd/snap/gnome-3-28-1804/128
loop8         7:8    0  62,1M  1 loop /var/lib/snapd/snap/gtk-common-themes/1506
loop9         7:9    0 162,9M  1 loop /var/lib/snapd/snap/gnome-3-28-1804/145
loop10        7:10   0  55,4M  1 loop /var/lib/snapd/snap/core18/1932
loop11        7:11   0 126,9M  1 loop /var/lib/snapd/snap/signal-desktop/333
loop12        7:12   0 169,3M  1 loop /var/lib/snapd/snap/spotify/42
loop13        7:13   0  97,7M  1 loop /var/lib/snapd/snap/core/10126
sda           8:0    0 931,5G  0 disk 
└─sda1        8:1    0 931,5G  0 part 
sdb           8:16   0 223,6G  0 disk 
├─sdb1        8:17   0   260M  0 part 
├─sdb2        8:18   0    16M  0 part 
└─sdb3        8:19   0 223,3G  0 part 
nvme0n1     259:0    0 119,2G  0 disk 
├─nvme0n1p1 259:1    0   300M  0 part /boot/efi
├─nvme0n1p2 259:2    0 101,9G  0 part /
└─nvme0n1p3 259:3    0    17G  0 part [SWAP]

grub.cfg視窗入口:

menuentry 'Windows Boot Manager (on /dev/sdb1)' --class windows --class os $menuentry_id_option 'osprober-efi-9287-5622' {
       savedefault
       insmod part_gpt
       insmod fat
       set root='hd1,gpt1'
       if [ x$feature_platform_search_hint = xy ]; then
         search --no-floppy --fs-uuid --set=root --hint-ieee1275='ieee1275//disk@0,gpt1' --hint-bios=hd1,gpt1 --hint-efi=hd1,gpt1 --hint-baremetal=ahci1,gpt1  9287-5622
       else
         search --no-floppy --fs-uuid --set=root 9287-5622
       fi
       chainloader /efi/Microsoft/Boot/bootmgfw.efi
}
set timeout_style=menu
if [ "${timeout}" = 0 ]; then
 set timeout=10
fi

**推測:**使用多個 EFI 分區是一種非標準方法,可能會導致一些問題。AFAIK,GRUB 應該仍然可以使用它 - 但是我在這裡找不到問題,並且我沒有可供參考的工作設置。

沒有 GRUB 的替代解決方案

rEFInd是一個引導管理器,我可以確認它能夠處理多個 EFI 分區。由於啟動時動態自動檢測,幾乎不需要配置。

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