我正在运行安装在 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 分区。由于启动时动态自动检测,几乎不需要任何配置。