web-dev-qa-db-ja.com

qemuを使用してVMを起動すると黒い画面が表示されるのはなぜですか?

次を使用して仮想マシンを起動しようとすると:

qemu-system-x86_64 -m 1024 -cdrom /Host/iso/ubuntu-13.10-desktop-AMD64.iso -name mac -hda ~/ubuntu

インストールの開始直後(言語を選択する前)に黒い画面が表示されます。 「その他のオプション」でnomodesetを設定しようとしましたが、問題は解決しませんでした。

ただし、同じISOを使用して、Virtual Machine Managerを使用してVMを起動できます。私のプロジェクトの1つでqemu-system-x86_64を使用してVMを起動する必要があります。

これを解決する方法を教えてください。

8
Sagar Patni

デフォルトでは、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.

(パッケージqemu-kvmのプログラムkvmを推奨している人を見るかもしれません。kvmexec 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イメージ Debian ARMを実行する方法を説明しますPC)。

仮想化のもう1つの一般的なオプションは、 VirtualBox です。

7
bain