我有一台机器,我刚刚在它自己的磁盘上安装了 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,因此生成的配置引用了错误的磁盘/分区?