
私は ESP を 2 つ持っていますが、これが問題なのかもしれません。しかし、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
私は hd0 ではなく hd1 にいますが、grub は UUID で見つけることができました。hd1,gpt2
代わりに検索するようにメニューエントリのヒント文字列を変更してみましたが、それでも同じエラーです。また、試しましたdrivemap -s hd1
。それでもパーティションが見つかりません。
私の質問は、なぜ GRUB が異なる hd# を表示するのかということです。また、パーティションを見つけるにはどうすればよいのでしょうか?
答え1
# grub-mkconfig -o /boot/grub/grub.cfg
編集後に忘れてました/etc/grub.d/40_custom
……