0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

QEMUでUEFIを起動する

Last updated at Posted at 2025-10-25

実行環境や必要なソフト

実行環境

・パソコン  Dell Inspiron AMD Ryzen7 8840U
・OS      Windows11 Home

必要なソフト

QEMU→CLI操作の仮想化ソフト
OVMF→UEFI公式が公開するQEMU用UEFI

OVMFのインストール

OVMFについて、情報がどうにも少なくて苦戦しました。
WebサイトによればEDK2のリポジトリをビルドしろ!なんですが、
私はどうも面倒だったので、AIに聞いてみたらOVMFのコードが
QEMUのインストールサイトにあると言うではないですか!

という事で、そのOVMFのコードが置いてあるサイトを載せます。
https://qemu.weilnetz.de/test/ovmf/usr/share/OVMF/
<方法>
①今回は、"OVMF_CODE.fd"と"OVMF_VARS.fd"の二つのファイルを
インストールします。
②普通に押すと{~ÔïÓ`}とか言ってくるので、
右クリック→「名前を付けて名前を保存」を選択すると、
ダウンロード出来ます。(お好きなディレクトリに保管してください)

ちなみに、OVMF_CODE.fdの方がUEFIのコード、OVMF_VARS.fdの方がUEFIの設定を保存するディスクスペースです。

ただ単純にUEFIをQEMUで起動する

QEMUを起動するコマンド(オプション付き)
qemu-system-x86_64 -bios (your directry)\OVMF_CODE.fd -boot menu=on
①-biosオプション

このオプションで、BIOSでの起動が出来ます。-biosのみではただBIOSが起動します。なのでOVMF_CODE.fdとファイルを指定してやると、UEFIで起動してくれます。

②-boot menu=on

Interactive boot menus/prompts can be enabled via as far as firmware/BIOS supports them. The default is non-interactive boot.menu=on(QEMU公式)
QEMUのアプリ側から、boot時動かせる様になるコマンドらしいです。

保存も出来るようにして、起動する

(10月27日追記内容)
実は上記のままでは、UEFIの設定情報を保存する事が出来ません。ここからは、QEMUの機能に関する説明を交え、説明していこうと思います。色々AIに聞きながらなんですけどね...(ドキュメント読んでた世代には尊敬の念)

保存もしながら、QEMUを起動するコマンド(オプション付き)
qemu-system-x86_64 -m 2048 
-drive if=pflash,format=raw,readonly=on,file=(yourdirectry)\OVMF_CODE.fd 
-drive if=pflash,format=raw,file=(yourdirectry)\OVMF_VARS.fd
-drive file=(yourdirectry)\disk.img,format=raw 
-boot menu=on,order=c
<変更点>無くなった-bios

このオプションは"ファイルをBIOSとして"読み込ませる、というものらしいです。だからUEFIには向いていないそうです。
この場合は、-driveオプションを使って、かつ読み込み専門という設定にしてUEFIを起動します。

①-driveオプション

お気を付けください。どのオプションの引数は全てスペース無し、そうじゃないとエラーです。時々間違えてしまうんですよね。
-driveオプションでは、HDDとか色々追加出来ます。

ちなみに、以下のファイルを入れる事が出来ます。それ以外にも色々
imgファイル ー HDDのファイル。FAT32でフォーマットされており、
          エクスプローラで見ると、USBメモリの様に扱える。
          仮想マシンの中ではHDDの様に振る舞う。
pflash ー プログラミングフラッシュメモリ。
       本来はマイコンのファームウェアが保存される場所。
       今回はUEFIのファイルを入れる。

(ちなみに)「imgファイルを作る方法」

imgファイルを作る方法
qemu-img create -f raw (yourdirectry)\disk.img 64M

rawっていうのは、一つのフォーマット方法です。qcow2とかもあったはず。思い通りのサイズでファイルを作れます。

②-bootオプション

order=cはHDD優先で、実行するプログラムを探すという引数。
menu=onというのは、こちら側からいじりやすくするための引数。
無論、これも引数は,と引数の間にスペースは作らない方が良さそう。

<お詫び>実はこの方法、ある場合とても遅いです。
UEFIの内容を保存しているのは、HDDでは無くpflashです。だからorder=cとHDD優先を指定すると、UEFIがブートするEFI\BOOT\BOOTX64.EFI(UEFIでOS自作する時は、.imgファイルを選択してその中にこんな感じのファイル構造を作ってみな、飛ぶぞ!作ったことない人が言って、すみません...)が見つからないため、Shellにたどり着くまでに数分かかります。それが嫌な人は、Shellのプログラムを(Shell.efi)ブートに組み込めとか言うのですが、そこまでは流石に出来ませんでした。

今回の内容、ほぼAIに頼りっきりなんですよね...
AI無しでもWebと一次資料で突破できる、そんな情報収集力の高い人間でありたいなぁと司馬遼太郎の「街道をゆく」を見ながらつくづく思っております。(あの本、Webも無かった時代によくあんなに地域の話してるから凄いもんです)

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?