QEMUは非常に強力な仮想化・エミュレーションツールですが、VirtualBoxやVMwareのようなGUIが標準では用意されていないため、初めて使う方にはとっつきにくく感じることもあるでしょう。
しかし、基本的なコマンドラインの使い方を覚えてしまえば、柔軟かつ高速に仮想マシンを操作できるようになります。
本記事では、QEMUのインストール方法から仮想マシンの作成・起動、設定ファイルの活用まで、実際の操作手順をわかりやすく解説していきます。
初めてQEMUを触る方も、この記事を参考にしながらステップバイステップで試してみてください。
QEMUのインストールと基本環境の準備
それではまず、QEMUのインストール方法と、動作させるために必要な基本環境の整え方について解説していきます。
Linuxへのインストール方法
LinuxディストリビューションへのQEMUのインストールは、各ディストリビューションのパッケージマネージャーを使うのが最も簡単です。
Ubuntuや Debian系では、以下のコマンドでインストールできます。
sudo apt update
sudo apt install qemu-system-x86 qemu-utils
Fedora・RHEL系では以下のコマンドを使用します。
sudo dnf install qemu-kvm qemu-img
インストール後、qemu-system-x86_64 –versionコマンドでバージョンを確認できます。
KVMを使用する場合は、CPUが仮想化支援機能(Intel VT-xまたはAMD-V)に対応しているかどうかも確認しましょう。
仮想ディスクイメージの作成
仮想マシンを動かすには、まず仮想ディスクイメージを作成する必要があります。
QEMUにはqemu-imgというツールが付属しており、さまざまな形式のディスクイメージを作成・変換できます。
qemu-img create -f qcow2 myvm.qcow2 20G
(QCOW2形式で20GBの仮想ディスクを作成する例)
QCOW2(QEMU Copy-On-Write 2)形式は、スナップショット機能や動的なサイズ拡張に対応しており、QEMU環境での標準的なディスクイメージ形式として広く使われています。
実際のファイルサイズは使用した分だけ増加するため、ディスクスペースを効率的に使えるのが大きなメリットです。
OSインストール用ISOファイルの準備
仮想マシンにOSをインストールするには、インストール用のISOファイルが必要です。
LinuxディストリビューションのISOはそれぞれの公式サイトから無料でダウンロードできます。
UbuntuやDebian、AlmaLinuxなど、用途に合わせたディストリビューションを選びましょう。
ダウンロードしたISOファイルは、仮想マシン起動時にCDROMドライブとしてマウントすることで、通常の物理PCへのインストールと同様の手順でOSをセットアップできます。
仮想マシンの起動と基本コマンド
続いては、仮想マシンを実際に起動する方法と、よく使う基本コマンドについて確認していきます。
qemu-system-x86_64の基本的な起動方法
QEMUで仮想マシンを起動する基本的なコマンドは以下のとおりです。
qemu-system-x86_64 \
-m 2G \
-hda myvm.qcow2 \
-cdrom ubuntu.iso \
-boot d \
-enable-kvm
各オプションの意味は以下のとおりです。
| オプション | 意味 |
|---|---|
| -m 2G | 仮想マシンに割り当てるメモリ量(2GB) |
| -hda myvm.qcow2 | 使用する仮想ディスクイメージ |
| -cdrom ubuntu.iso | CDROMとして使用するISOファイル |
| -boot d | CDROMから起動(dはCD/DVD) |
| -enable-kvm | KVMアクセラレーションを有効化 |
これらのオプションを組み合わせることで、目的に合った仮想マシン環境を素早く構築できます。
ネットワーク設定とポートフォワーディング
仮想マシンのネットワーク設定もQEMUの重要な機能のひとつです。
デフォルトではユーザーモードネットワーク(SLIRP)が使用され、NATを通じてゲストがインターネットにアクセスできます。
SSHでゲストに接続したい場合は、ポートフォワーディングを設定します。
-netdev user,id=net0,hostfwd=tcp::2222-:22 \
-device virtio-net-pci,netdev=net0
(ホストの2222番ポートをゲストの22番ポートに転送する例)
この設定をすると、ホストから「ssh -p 2222 user@localhost」でゲストにSSH接続できるようになります。
CPU・メモリ・ストレージの詳細設定
より細かいハードウェア構成を指定したい場合は、追加のオプションを活用します。
-cpuオプションではゲストに見せるCPUモデルを指定でき、-smpオプションでは仮想CPUのコア数を設定できます。
-cpu host -smp 4
(ホストCPUをそのまま使用し、4コアを割り当てる例)
「-cpu host」を指定するとKVMと組み合わせて最大限のパフォーマンスを得られますが、仮想マシンを別のホストに移行する際は互換性に注意が必要です。
設定ファイルとスクリプトによる管理
続いては、QEMUの設定をファイルやスクリプトで管理する方法について確認していきましょう。
起動スクリプトの作成と管理
毎回長いコマンドを入力するのは手間がかかるため、起動スクリプトを作成しておくのが実用的です。
シェルスクリプト(.sh)にQEMUの起動コマンドをまとめておくことで、コマンド一発で仮想マシンを起動できるようになります。
#!/bin/bash
qemu-system-x86_64 \
-enable-kvm \
-m 4G \
-cpu host \
-smp 4 \
-hda /var/vms/myvm.qcow2 \
-netdev user,id=net0,hostfwd=tcp::2222-:22 \
-device virtio-net-pci,netdev=net0 \
-nographic
「-nographic」オプションを指定するとGUIウィンドウを開かずにシリアルコンソールで操作できるため、ヘッドレスサーバー環境でも使いやすくなります。
QEMUのモニター機能の活用
QEMUにはQEMUモニターと呼ばれる管理コンソール機能が搭載されています。
仮想マシン実行中にCtrl+Alt+2キーを押すとモニター画面に切り替わり、仮想マシンの状態確認・スナップショット作成・デバイスの追加・削除などが行えます。
Ctrl+Alt+1でゲスト画面に戻ることができるため、仮想マシンを停止させずに管理操作が可能です。
QEMUモニターはCtrl+Alt+2で呼び出せる管理コンソールです。「savevm スナップショット名」でスナップショットを保存、「loadvm スナップショット名」で復元するなど、実用的な操作が可能です。
libvirtのXML定義ファイルとの関係
libvirtを使用する場合、仮想マシンの設定はXML定義ファイルで管理されます。
virshコマンドやVirt-Managerから仮想マシンを作成すると、XMLファイルが自動生成され、QEMUの起動オプションに変換されます。
このXML定義ファイルを直接編集することで、細かいハードウェア構成の調整が可能です。
「virsh edit 仮想マシン名」コマンドでXML定義ファイルをテキストエディターで開き、設定を変更できます。
QEMUのトラブルシューティングと最適化
続いては、QEMUを使う上でよくあるトラブルとその対処法、そしてパフォーマンスを高める最適化について確認していきましょう。
KVMが有効かどうかの確認方法
QEMUを使う際によくある問題のひとつが、KVMが正しく有効になっていないことです。
KVMが使えるかどうかは、以下のコマンドで確認できます。
ls /dev/kvm
(/dev/kvmが存在すればKVM利用可能)
または
kvm-ok
(cpu-checker パッケージが必要)
BIOSやUEFIの設定でIntel VT-xまたはAMD-Vが無効になっている場合は、ファームウェア設定画面から有効化する必要があります。
パフォーマンス最適化のポイント
QEMUのパフォーマンスを最大化するために押さえておきたいポイントがいくつかあります。
まず、-enable-kvmと-cpu hostを必ず指定することで、ネイティブに近い速度を実現できます。
ネットワークとストレージはVirtIOデバイスを使用することで、I/O性能が大幅に向上します。
また、ゲストOSにVirtIOドライバーがインストールされているかどうかも確認が必要です。
| 最適化項目 | 推奨オプション・設定 | 効果 |
|---|---|---|
| CPU | -enable-kvm -cpu host | ネイティブに近い速度 |
| ネットワーク | virtio-net-pci | I/Oスループット向上 |
| ストレージ | virtio-blk / virtio-scsi | ディスクI/O高速化 |
| メモリ | -m サイズ(適切な割り当て) | スワップ回避 |
よくあるエラーと対処法
QEMUを使う際によく遭遇するエラーと、その対処法について紹介します。
「Could not access KVM kernel module: No such file or directory」というエラーは、KVMモジュールが読み込まれていない場合に発生します。
「sudo modprobe kvm_intel」または「sudo modprobe kvm_amd」でモジュールを手動読み込みすることで解決できます。
また、「Permission denied」エラーは、ユーザーがkvmグループに属していない場合に発生することが多く、「sudo usermod -aG kvm $USER」でグループ追加することで解決できます。
まとめ
本記事では、QEMUのインストール方法から仮想マシンの作成・起動、コマンドラインオプション、スクリプト管理、トラブルシューティングまでを幅広く解説しました。
QEMUは最初こそコマンドライン操作に慣れが必要ですが、基本を理解すれば非常に柔軟で強力な仮想化環境を構築できます。
KVMとの組み合わせによる高速化や、VirtIOデバイスによるI/O最適化も積極的に活用していきましょう。
実際に手を動かしながら学ぶことで、QEMUの操作感はどんどん身についていくでしょう。
ぜひ今日から自分の環境でQEMUを試してみてください。