UEFI Windows / Linuxマルチブート設定用のカスタムGrubメニューを構築しようとしています。以下を含むUSBドライブでメニューを正常にテストしました。
/EFI/boot/BOOTX64.EFI
/grub/grub.cfg
/grub/x86_64-efi/*
…etc.
そのドライブから起動すると、問題なくメニューにアクセスできます。次に、グラブをPCのEFIシステムパーティションに転送しました。
/boot/grub/bootx64.efi
/boot/grub/grub.cfg
/boot/grub/x86_64-efi/*
…etc.
このパーティションにはWindows用のブートローダもあります/EFI/Microsoft/boot
。
最後に、WindowsユーティリティBOOTICE(またはシステムBIOS)を使用してそれを追加して再起動する\boot\grub\bootx64.efi
と、grubが表示されます。
...メニューを呼び出す代わりに救助メッセージを受け取ったことを除いて。私の仮定は、grub.cfgとモジュールを間違った場所に置いたことです。しかし、本当に奇妙なことは、ls
パーティションを表示しないことです(hd0) (hd1)
。私の期待は(hd0) (hd0,msdos1)
そうでしたが、グラブ構造はls
どのパーティションでもまったく機能しないようです。 ls (hd0)
どちらもls (hd1)
「不明なファイルシステム」が作成されます。
私のシステムには、パーティションを持つ1つの物理ディスクが含まれています。
1 = EFI system partition (fat32)
2 = Veracrypted partition (with Windows installation)
3 = Veracrypted partition (data)
4 = Linux swap
5 = Linux root
6 = Linux home
GrubがEFIシステムパーティションから起動できますが、そのパーティションや他のパーティションを表示できないのはなぜですか?さらに重要なのは、USBなどの内蔵ドライブからメニューをどのように取得できますか?
ベストアンサー1
ls (hd0)
単一のファイルシステムでディスク全体にアクセスしようとしていることを意味します。このメッセージ(hd0): Filesystem is unknown.
は正常で、ディスクが何らかの方法で分割されている場合に予想されます。
代わりに入力してくださいls (hd0
いいえ角かっこを閉じて Tab キーを押します。 GRUBがパーティションタイプを認識している場合は、GRUBに知られているパーティションとそのファイルシステムタイプを一覧表示する必要があります。
問題は、GRUBの設定ファイルがモジュールディレクトリと同様にではないことを<partition root>/grub/grub.cfg
期待していることです。<partition root>/boot/grub/grub.cfg
GRUBbootx64.efi
ファイルには、GRUBコアイメージといくつかのオプションのGRUBモジュールが含まれています。この組み込みモジュールセットが含まれていないと、part_gpt
GRUBはGPTパーティションテーブルを認識しないため、残りのGRUBモジュールを含むファイルシステムにアクセスできなくなります。これがGRUB回復モードに入るもう一つの理由かもしれません。