ubuntu のソースから grub 2 ブートローダーをビルドし、qemu エミュレーターでテストする方法を知りたいです。
また、新しいビルドで grub2 ブートローダーのデフォルトの背景画像を変更したいですか?
これは可能ですか?はいの場合、どのように?
ubuntu のソースから grub 2 ブートローダーをビルドし、qemu エミュレーターでテストする方法を知りたいです。
また、新しいビルドで grub2 ブートローダーのデフォルトの背景画像を変更したいですか?
これは可能ですか?はいの場合、どのように?
もちろんできます。
GRUB Web サイトに示されているように、grub のソース コードは git.savannah.gnu.org から git 経由で入手できます。
それからそれは理論的には単なる問題です
$ ./autogen.sh
$ ./configure
$ make
$ sudo make install
ただし、プラットフォームによっては、grub のデフォルトのターゲット プラットフォームが必要な場合とそうでない場合があります。したがって、QEMU で使用するファームウェア プラットフォームを決定する必要があります。これは、アーキテクチャに応じて次のようになります。
Ubuntu についてのあなたの言及は、上記の少なくとも 3 つの可能なオプションと一致しますが、私は退屈になり、x86_64/amd64 を意味すると仮定します。QEMU の下で GRUB を実行するため、物理コンピューターが 2 つのプラットフォーム (「pc」または「efi」) のどちらを実行しているかは問題ではありません。それでは、少し生きて、(U)EFI バリアントに行きましょう。
構成およびビルドの前に、いくつかの前提条件をインストールする必要があります。
$ sudo apt-get install build-essential autoconf automake
$ sudo apt-get build-dep grub-efi-amd64
したがって、実際のビルドは次のようになります。
$ # Next command is optionnal (languages):
$ ./linguas.sh
$ ./autogen.sh
$ # Next parameters are optionnal:
$ ./configure --prefix=$HOME/local --platform=efi
$ make
$ # Next command is optionnal:
$ make check
$ make install
機能する GRUB イメージを取得する最も簡単な方法は、おそらく次のgrub-mkstandalone
コマンドを使用することです。
$ $HOME/local/bin/grub-mkstandalone -O x86_64-efi -o mygrub.efi
/dev/sda
注: GRUB を(QEMU の代わりに) ディスクにインストールするには、次を使用します。
$ sudo grub-install /dev/sda
注: 起動時に GRUB メニューが表示されない場合は、この質問を確認してください。Shift起動時または編集時/etc/default/grub
にコメントを押す必要がありますGRUB_HIDDEN_TIMEOUT
。
次に、QEMU で実行する UEFI イメージが必要です。x86 のデフォルトの選択肢は OVMF と呼ばれ、UEFI のデファクト オープン ソース実装であるTianocore EDK2の一部です。FAT ファイルシステム ドライバーの再配布に関する法的技術により、多くの Linux ディストリビューション (Ubuntu を含む) にはビルド済みのドライバーが含まれていません。しかし、恐れる必要はありません。自分で作成するのは非常に簡単です。
ただし、この回答をこれまで以上に話題から外すつもりはありません。そのため、OVMF READMEを読み、それに関するわずかに古いブログ記事を1つか2 つ確認するだけでいいと思います。