デフォルトでqemu-system-x86_64
は、仮想化ではなくエミュレーションを行います。エミュレーションは遅く、CPUに負荷がかかります。を実行top
すると、CPUが100%に近いことがわかります。qemu-system-x86_64
私のシステムでXubuntu 14.04を起動したところ、デスクトップが起動するのに10分かかりました。Ubuntuは通常、ブート情報を非表示にします。そのため、黒い画面(またはBIOSの解像度の変更によって引き起こされる他のグラフィックアーティファクト)が表示されます。カーネルパラメータを削除splash quiet
して追加するdebug
と、この間に何が行われているかがわかります。
おそらく実行qemu-system-x86_64 -enable-kvm
したいのは、ハードウェア仮想化のサポートを有効にするために実行することです。
qemu-system-x86_64 -enable-kvm -m 1024 -cdrom /host/iso/ubuntu-13.10-desktop-amd64.iso -name mac -hda ~/ubuntu
からman qemu-system-x86_64
:
-enable-kvm
Enable KVM full virtualization support. This option is only available
if KVM support is enabled when compiling.
(kvm
パッケージからプログラムを推奨している人がいるかもしれませんqemu-kvm
。これkvm
は単なるラッパースクリプトですexec qemu-system-x86_64 -enable-kvm "$@"
)
KVMはシミュレーションではなくハードウェア仮想化を使用するため、はるかに高速です。最新のPCシステムが持っているハードウェア仮想化拡張機能(Intelの場合はVT-x、AMDの場合はAMD-V)をサポートするCPUが必要です。
仮想化では、CPUは実際にはゲストOSから未加工の実行可能バイナリコードを実行します。仮想化は高速ですが、ホストOSとゲストOSはバイナリ互換でなければならないという制限があります。エミュレーションでは、ゲストOSのバイナリコードがホストCPUで実行されるように書き換えられます。遅いですが、異なるCPUアーキテクチャ用にコンパイルされたゲストOSを実行できるという利点があります(たとえば、Debian armelのQEMUイメージは、PCでDebian ARMを実行する方法を説明しています)。
仮想化のもう1つの一般的なオプションはVirtualBoxです。
-vga [std|vmware|cirrus|qxl]
。詳細man qemu-kvm
については参照してください。