web-dev-qa-db-ja.com

efiパーティションを作成し、GRUBブートローダーを手動でインストールする方法

現在、自分で作成したefiパーティションにgrubブートローダーをインストールするのに苦労しています。 GPTパーティションテーブルを使用しており、そのうちの1つがESP(EFIシステムパーティション)タイプで、それぞれのタイプUUIDを持つパーティションをいくつか作成しました。 mkfs.fat -F32によってそのボリューム内にFATファイルシステムを作成しました。今、私はGRUBブートローダーのインストールの部分にかかっています。

私がこれを行うための好ましい方法は、GRUBバイナリをマウントされたEFIパーティションにコピーすることですが、バイナリはどこでも利用できないため、これにアプローチする推奨方法ではありません(推測ですか?) 。これは理論的には機能しますか(UEFIファームウェアはEFIパーティションのファットファイルシステムを読み取れるように見えるので、なぜバイナリをコピーしないのですか)?したがって、一般的なアプローチは、grub-install(VMで実行している一部のLinux OS内から)を使用することです。今の問題は、これが最終的に何をするのか本当にわからないということです。 MBR-Legacyを使用せずにプレーンなEFI-Bootloaderをインストールしたいので、この全体がEFIパーティション内のファイルのみで構成されている必要があります。 grub-installの機能は非常に不透明です。箱から出して実行するためにかなりの努力をした後、grub-efi-AMD64パッケージをインストールしました。再起動後、インストールできましたが、デバイスを指定する必要がありました。以前の仮定を考慮すると、EFIパーティションのマウントポイントを知るだけでよいので、これもまた私を混乱させます。おそらくこれを解決する必要がある--efi-directoryというオプションがあるようですが、使用する場合、grub-installはデバイスを指定しないと文句を言います。

私の見解では、ブートローダーはインストールされているように見えますが、EFIパーティションは空です。レガシーMBRの方法でインストールされたように感じますが、これを確認できますか? Vanilla EFI grubのインストールの目標を達成するためのアドバイスはありますか?よろしくお願いいたします。

2
Jonas Eschmann

grub-installは、単にバイナリを/ usr/lib/grubから/ boot/efiにコピーし、EFIシステム変数がそこを指すように構成します。 ESPを/ boot/efiにマウントして、grub-installを実行するだけです。下位互換性のためにデバイス引数が必要ですが、無視されるため、必要なものを指定できます。 Ubuntuインストーラーはgrub-install dummyを実行するだけです。

3
psusi