web-dev-qa-db-ja.com

ハードウェア仮想化(AMD-v、vt-x)なしで64ビットプロセッサ上で64ビット仮想マシンを実行する方法はありますか?

64ビットホストマシン(どのOSでも実行可能)で実行したい64ビット仮想マシン(CentOS)がありますが、そのホストマシンはハードウェア仮想化をサポートしていません。その中で64ビット仮想マシンを実行しています。

VirtualBoxとVMwarePlayerを試しましたが、どちらもハードウェア以外の仮想化プロセッサでこの問題が発生します。 OpenVZ、XEN、KVMなどの別の仮想化システムが役立つかもしれないと思いましたか?どう思いますか?

Stackoverflowでは、Qemuを使用するようにアドバイスされました。 OpenVZ、XEN、またはKVMは機能しませんか?これらのソフトウェアのいずれかでこの問題を解決できる場合は、これらのソフトウェアのいずれかを試してみたかっただけです。

ありがとう!

5
Paul

おそらくそうではないか、少なくとも、簡単で十分にサポートされた方法はありません。

http://en.wikipedia.org/wiki/X86_virtualization#Software-based_virtualization を参照してください。

X86-64(AMD64)の初期バージョンでは、ロングモードでのセグメンテーションサポートがないため、ソフトウェアのみの完全な仮想化ができませんでした。これにより、ハイパーバイザーのメモリの保護、特にトラップハンドラーの保護が不可能になりました。ゲストカーネルアドレス空間で実行されます。[12] [13]:11および20リビジョンD以降の64ビットAMDプロセッサ(原則として、90 nm以下で製造されたもの)は、長い間セグメンテーションの基本的なサポートを追加しましたモード。バイナリ変換を介して64ビットホストで64ビットゲストを実行できるようにします。 Intelはx86-64実装(Intel 64)にセグメンテーションサポートを追加しなかったため、IntelCPUで64ビットソフトウェアのみの仮想化を不可能にしました。

2
RedGrittyBrick

パフォーマンスを犠牲にすることができる場合は、 [〜#〜] qemu [〜#〜] または Bochs のようなフルCPUエミュレーターで試すことができます。 QEMUを使用すると、ほぼすべての種類のCPUをゲストまたはホストとして使用できます。 Bochsを使用すると、ゲストはx86またはx86-64になり、ホストは任意の種類のCPUになります。

0
yms