(hdx、gptx)の代わりに--prefix =(UUID)を使用するgrub-mkimageを使用しますか?

(hdx、gptx)の代わりに--prefix =(UUID)を使用するgrub-mkimageを使用しますか?

このコマンドは完全に機能しますが、他のドライブを接続するたびに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.efigrubに正しいプレフィックスを見つけるようにすることです。あなたの初期設定ファイル以下のみが含まれます。

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

関連情報