GRUB 找不到 Windows ESP

GRUB 找不到 Windows ESP

我有 2 个 ESP,这可能是问题所在,但我认为可以修复,因为我可以使用 GRUB SET 手动启动。无论如何,这是我的设置。当我在其他机器上重新输入时,请忽略某些可能的拼写错误:

fdisk -l

/dev/sda1    Windows recovery
/dev/sda2    EFI system
/dev/sda3    Microsoft reserved
/dev/sda4    Microsoft basic data
/dev/sda5    Windows recovery
/dev/sda6    EFI System (linux)
/dev/sda7    Linux fs

Linux 内部:

# grub-probe --target=fs_uuid /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi
4C77-A2D0
# grub-probe --target=hints_string /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi
--hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2

所以在 GRUB 条目中我使用:

insmod part-gpt
insmod fat
insmod search_fs_uuid
insmod chain
search --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2 4C77-A2D0
chainloader /EFI/Microsoft/Boot/bootmgfw.efi

当尝试启动进入 Windows 时,这会导致以下错误:

error: unspecified search type
error: file '/EFI/Microsoft/Boot/bootmgfw.efi' not found.

所以我进入 GRUB 命令行:

grub> set
...
cmdpath=(hd1,gpt6)/EFI/grub
...
grub> search.fs_uuid 4C77-A2D0
 hd1,gpt2

我在 hd1 而不是 hd0,grub 可以通过 UUID 找到。我尝试修改我的菜单项提示字符串来进行搜索hd1,gpt2,但仍然出现相同的错误。我也尝试过drivemap -s hd1。仍然找不到分区。

我的问题是为什么 GRUB 显示不同的 hd#。我如何让它找到分区?

答案1

# grub-mkconfig -o /boot/grub/grub.cfg编辑完后忘记了/etc/grub.d/40_custom......

相关内容