このコマンドは完全に機能しますが、他のドライブを接続するたびにhd#、gpt#が変更される可能性があるため、hd#、gpt#を使用することに慣れていません。したがって、(hd#、gpt#)の代わりにUUIDでプレフィックスを設定する必要があることを除いて、正確なコマンドが必要です。
grub-mkimage -o /path/to/mounted/esp/partition/EFI/prime_boot/bootx64.efi --format=x86_64-efi '--prefix=(hd0,gpt1)/EFI/prime_boot' ext2 part_gpt
私はさまざまなUUID = 9045-CF30、9045-CF30などを試しました。誰もが正しい方法を知っていますか?
答え1
最も簡単な方法は、grub.cfg
ファイルをファイルに埋め込み、bootx64.efi
grubに正しいプレフィックスを見つけるようにすることです。あなたの初期設定ファイル以下のみが含まれます。
search.fs_uuid 12345678-9abc-def0-1234-56789abcdef0 root
set prefix=($root)'/grub'
configfile $prefix/grub.cfg
その後、grub-mkimage
コマンドは次のようになります。
grub-mkimage -o /path/to/mounted/esp/partition/EFI/prime_boot/bootx64.efi -c early-config-file --format=x86_64-efi '--prefix=Dont-Care' MODULES...(read below)....
この「初期構成」は、含むinsidegrubx64.efi
なので、呼び出したりディレクトリgrub.cfg"
に含める必要はありません。これは実際に/boot/efi/EFI/wherever/
Ubuntuとは異なります。/boot/efi/EFI/ubuntu/grub.cfg
読む- つまり、名前を変更するとシステムは起動しません。
その後: モジュール。検索を使用するには、ext2 part_gpt
実行する作業以上の内容を含める必要があります。一般的なext4形式のルートファイルシステムの最小値はext2 part_gpt search configfile test linux loadenv
。フォントを読み込めないというエラーがありますが、少なくとも私の設定では機能します。
実際、Ubuntu自体には100を超えるGRUBモジュールとフォントを含むmemdiskが含まれています。うん、そうです。~へ文書/boot/efi/EFI/ubuntu/grubx64.efi
。