QEMU
目次
QEMUとは
フリーのCPUエミュレータ。
PC(x86,x86_64)のみならず、Mac(PowerPC)などの様々なマシンに対応しています。
OSを制作する上で欠かせません。
インストール
Linux
ソースをコンパイルしてインストールすることも可能ですが、yumやaptなどで容易にインストールできます。
ソースからコンパイルする場合は、
- ソースの解凍
tar zxvf qemu-x.y.z.tar.gz
- configureでQEMUのmake環境を作る。configure→googleで参照。
./configure
- makeし、QEMUをインストールする。
make install
Windows
通常のインストールでOK。
Mac
・・・
実行
qemu [options] [disk_image]
disk_imageはIDEのHDD0として使うrawイメージファイルです。
オプション
- -M [machine]
- どのマシンで実行するか選択します。?にすると選択可能なマシンの一覧が表示されます。
イメージ指定
- -fd(a|b) image
- フロッピーディスク0,1のイメージとして、imageを使います。
imageとして、"/dev/fd0"を指定することもできます。
- -hd(a|b|c|d) image
- ハードディスク(IDEデバイス)0〜4のイメージとして、imageを使います。
- -cdrom image
- CD-ROMのイメージとして、imageを使います。(-hdcと一緒には使えません。CDがIDEのセカンダリのマスタ=hdcにつながれるから?)
imageとして、"/dev/cdrom"を指定することもできます。
ブート
- -boot [a|b|c|d]
- ブートするデバイスを選択します。BIOSで最初に決めておく起動順のような感じ?なので、設定しなくても問題はない?
a, b:フロッピーディスクから起動します。
c:ハードディスクから起動します。(デフォルト)
d:CD-ROMから起動します。
その他
- -m ramsize
- メモリのサイズを指定します。ramsizeはメビバイト単位です。デフォルトは128MiBです。
| オプション | 説明 |
|---|
| -monitor stdio | QEMUモニタとして標準入出力を使う |
| -enable-audio | 仮想PCのサウンド(オーディオ)デバイスを有効にする |
| -localtime | 仮想PCのリアルタイムクロックをローカルタイムにセットする |
| -snapshot | ハードディスクをスナップショットモードにして起動する |
| -user-net | ユーザモードのネットワークを使う (TUN/TAPの/etc/qemu-ifupスクリプトがない場合のデフォルト) |
| -redir tcp:8080::80 | -user-net使用時,ホストOSのTCP 8080番ポートをゲストOSのTCP 80番ポートにリダイレクトする |
| -smb /tmp | -user-net使用時,ホストOSの/tmpを共有名qemuでSMBで共有する |
| -no-kqemu | kqemuアクセラレータを使用しない |
キー操作
- Ctrl + Alt
- 標準入力(キーボード、マウス)をQEMU内とQEMU外で切り替え
- Ctrl + Alt + f
- フルスクリーン ←→ ウィンドウ 切り替え
- Ctrl + Alt + 1
- 通常の実行画面に切り替え(ゲストOS画面)
- Ctrl + Alt + 2
- QEMUモニタに切り替え
- Ctrl + Alt + 3
- シリアルポートに切り替え
- Ctrl + Alt + n
- 他にもあるかも。
QEMUモニタ
レジスタやメモリなどの各種情報が参照できたり、他にもいろいろできます。
Ctrl + Alt + 2でこのモードに切り替えることができます。
Ctrl + (up|down|PageUp|PageDown)でスクロールができます。
コマンド
- (help|?) [command]
- コマンドの一覧を表示。オプションの'command'を指定すると、そのコマンドについて詳細を表示。
- info network
- ネットワークの状態を表示
- info block
- ブロックデバイスを表示
- info registers
- レジスタの状態を表示
- info
- info subcommand
- 他にもあります。
- (quit|q)
- QEMUを終了します。
- stop
- エミュレーションを一時停止
- (cont|c)
- エミュレーションを再開
- x/format addr
- formatの書式でaddrから仮想メモリをダンプします。ページングに有効?
- xp/format addr
- formatの書式でaddrから物理メモリをダンプします。
メモリダンプ
コマンドでx/format addrや、xp/format addrと入力することでメモリの内容を参照することができます。
フォーマット
formatは、ダンプする数、表示形式、サイズからなります。
ダンプ数
表示形式とサイズで指定されたものを表示する数
表示形式
- o:8進数で表示
- d:符号あり10進数で表示
- u:符号なし10進数で表示
- x:16進数で表示
- c:文字で表示
- i:アセンブラ命令で表示(逆アセンブル)
サイズ
- b:バイト(8bit)単位で表示
- h:ハーフワード(16bit)単位で表示
- w:ワード(32bit)単位で表示
- g:(64bit)単位で表示
アドレス
メモリダンプする先頭番地を指定する。
その他
注意事項
フォーカスを当てると、帰ってこれなくなることがあるので注意。その時は強制終了です。
参考・関連