Grub 识别但不启动 Windows

Grub 识别但不启动 Windows

我正在运行安装在 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 选项会正确启动 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

答案1

推测:使用多个 EFI 分区是一种非标准方法,可能会导致一些问题。 AFAIK,GRUB 应该仍然能够处理这个问题 - 但是我在这里找不到问题,而且我没有可供参考的工作设置。

不使用 GRUB 的替代解决方案

酶标仪是一个启动管理器我可以确认能够处理多个 EFI 分区。由于启动时动态自动检测,几乎不需要任何配置。

相关内容