Grub 安装后无法启动 Windows

Grub 安装后无法启动 Windows

我有一台机器,我刚刚在它自己的磁盘上安装了 Endeavor。我已配置操作系统探测器以允许检测 Windows 并将其添加到 grub,但尽管找到了系统,但它无法启动。一些相关信息:

sudo os-prober 
[sudo] senha para vfbsilva: 
/dev/nvme0n1p2:Manjaro Linux (23.1.0):ManjaroLinux:linux
/dev/sdd2@/efi/Microsoft/Boot/bootmgfw.efi:Windows Boot Manager:Windows:efi

然后我更新条目:

sudo grub-mkconfig -o /boot/grub/grub.cfg
Gerando o arquivo de configuração do grub...
Plano de fundo encontrado: /usr/share/endeavouros/splash.png
Imagem Linux encontrada: /boot/vmlinuz-linux
Imagem initrd encontrada: /boot/amd-ucode.img /boot/initramfs-linux.img
Found fallback initrd image(s) in /boot:  amd-ucode.img initramfs-linux-fallback.img
Aviso: os-prober será executado para detectar outras partições de arranque.
A sua saída será usada para detectar binários de arranque nessas partições e criar novas entradas.
Encontrado Manjaro Linux (23.1.0) em /dev/nvme0n1p2
Encontrado Windows Boot Manager em /dev/sdd2@/efi/Microsoft/Boot/bootmgfw.efi
A adicionar entrada de menu para UEFI Firmware Settings ...
concluído

存在一些问题,Endeavor 和 Manjaro 可以启动,但 Windows 不能启动。我没有使用 fastboot,manjaros grub 可以访问 Windows 安装。 grub 的错误如下: 在此输入图像描述

这是一个非常明显的问题,所以我安装了 grub 定制器,并且努力做到了:

insmod part_gpt
insmod fat
set root='hd3,gpt2'
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root --hint-bios=hd3,gpt2 --hint-efi=hd3,gpt2 --hint-baremetal=ahci3,gpt2  3E6D-7A34
else
  search --no-floppy --fs-uuid --set=root 3E6D-7A34
fi
chainloader /EFI/Microsoft/Boot/bootmgfw.efi

For the windows loader. The manjaro loader has:

savedefault
insmod part_gpt
insmod fat
set root='hd3,gpt2'
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root --hint-bios=hd3,gpt2 --hint-efi=hd3,gpt2 --hint-baremetal=ahci3,gpt2  3E6D-7A34
else
  search --no-floppy --fs-uuid --set=root 3E6D-7A34
fi
chainloader /EFI/Microsoft/Boot/bootmgfw.efi

So they are equal hence I cannot grasp the problem.

I think it mighrt be related to:

ls /boot/efi/EFI/
boot/        endeavouros/ 

没有微软的条目,但为什么呢?

答案1

GRUB 配置假定 Windows 的 UEFI 引导加载程序/引导管理器位于卷序列号为 3E6D-7A34 的 FAT 文件系统中。

但错误消息表明这可能不是真的。

您应该运行lsblk -o +uuid查看文件系统及其 UUID 列表(如果是 FAT 文件系统,则为卷序列号,因为它没有真正的 UUID)。报告的 UUID 有何用途/dev/sdd2?如果不是 3E6D-7A34,则应将正确的值放置到search中 Windows 块内的行中grub.cfg

由于 EndeavourOS 位于不同的磁盘上,因此它有自己的 EFI 系统分区(简称 ESP),其中仅包含自己的引导加载程序。也许os-prober期望所有操作系统共享一个 ESP,因此生成的配置引用了错误的磁盘/分区?

相关内容