仮想マシン
 Computer >> コンピューター >  >> ソフトウェア >> 仮想マシン

KVM と VirtualBox を並べて使用する

KVM と VirtualBox はおそらく共存できません。つまり、KVM モジュールがメモリにロードされている間は VirtualBox が実行されません。 KVM は VirtualBox と一緒に使用すると問題なく動作するため、これは一方通行の問題です。それを解決するのも簡単です。残念ながら、この製品またはその製品のいずれかをアンインストールすることを推奨する多くのひどいチュートリアルに出くわしました。そして、より厳格でない解決策を求めるより健全なガイドの中で、ほとんどの場合、これまたはあれを rmmod するように指示するだけで、物事を再び実行する方法を教えてくれません。

KVM と VirtualBox を、いずれかをアンインストールしたり、使用の合間に再起動したりせずに、並べて使用する方法を紹介します。競合する製品を実行できるように、製品を無効化および有効化する方法を学習します。生体内では再起動しません。これをやろう。

症状 - VirtualBox が実行されない

VirtualBox を起動すると、次のようなエラーが表示される場合があります:

VirtualBox は VMX ルート モードでは動作できません。 KVM カーネル拡張機能を無効にし、カーネルを再コンパイルして再起動してください。うわー、うわー、ゆっくり。これは非常にマニアックで恐ろしいメッセージです。何も再コンパイルする必要はありません。修正には 5 秒かかり、完全に非破壊的です。

問題の説明

VirtualBox と KVM は連携できません。これは、VirtualBox を実行する場合、KVM を無効にする必要があることを意味します。問題は、これをどのように行うかです。答えは、カーネル モジュールの挿入と削除です。

Linux オペレーティング システムは、カーネル モジュールのオンザフライでの挿入と削除をサポートしており、再起動は必要ありません。これは、in vivo でメモリとの間でカーネル モジュールをロードおよびアンロードできることを意味します。詳細については、私の Linux コマンドの記事と Crash Book を参照してください。

必要なことを達成するために、insmod および rmmod コマンドを使用します。

モジュールを削除

カーネル空間を調べてみましょう。最初に lsmod コマンドを発行して、どのモジュールがメモリにロードされているかを確認します:

ご覧のとおり、VirtualBox は vboxdrv および vboxnetflt ドライバーを使用しますが、KVM は kvm および kvm_intel ドライバーを使用します。注:kvm_intel は Intel アーキテクチャに固有です。 AMD プラットフォーム用の kvm_amd があります。 KVM モジュールをアンロードする必要があります。

/sbin/rmmod kvm_intel
/sbin/rmmod kvm

大きな疑問:しかし今、KVM はなくなりました。どうすれば元に戻せますか?

ああ、とても良い!どうすれば回復できるか見てみましょう。

モジュールの挿入

モジュールを削除したのと同じように、モジュールを挿入できます。ディスク上のモジュールを見つけて挿入する必要があります。 modprobe コマンドを使用することもできます。これは、依存関係がある場合に常に役立ちます。

モジュールを見つけてみましょう (コマンドで sudo を想定していますが、root としても実行できます):

更新b
kvm を見つけます

多くの結果が表示されるため、検索を kvm.ko および kvm-intel.ko に限定できます。

次に、実行中のカーネルに一致するものを挿入します。 uname -r で確認できます。

/sbin/insmod /lib/modules/`uname -r`/kernel/arch/x86/kvm/kvm.ko
/sbin/insmod /lib/modules/`uname -r`/kernel/arch/x86/kvm/kvm-intel.ko

これがスクリーンショットです。まず、kvm モジュールを確認します。 lsmod コマンドは、ロードされていないことを示しています。次に、kvm モジュールをロードして、もう一度 lsmod コマンドを発行します。

スクリーンショットのコマンドは、上記のコード ボックスに記述されたコマンドとは若干異なることに注意してください。 /sbin が PATH にあると想定したので、簡潔にするために短縮された insmod コマンドを使用しました。同時に、どのように見えるかを示すために、完全なモジュール パスも使用しました。プロシージャをスクリプト化する場合は、フルパスが必須であり、モジュール性を高めるためにバッククォートを使用したコマンド置換が推奨されます。

スクリプト

では、これを自動化しましょう。 2 つのスクリプトが必要です。 1 つは KVM モジュールのアンロード用、もう 1 つはモジュールのロード用です。本当に厳密にしたい場合は、KVM の使用時に VirtualBox サービスを停止し、KVM の使用後に開始することもできます。例、VirtualBox ドライバーをいじる:

したがって、VirtualBox を有効にして KVM を無効にするサンプル スクリプトは次のようになります。

#!/ビン/バッシュ
/sbin/rmmod kvm_intel
/sbin/rmmod kvm
/etc/init.d/vboxdrv 開始

そして、KVM をロードして VirtualBox を停止するものは次のようになります:

#!/ビン/バッシュ
/etc/init.d/vboxdrv ストップ
/sbin/insmod /lib/modules/`uname -r`/kernel/arch/x86/kvm/kvm.ko
/sbin/insmod /lib/modules/`uname -r`/kernel/arch/x86/kvm/kvm-intel.ko

AMD マシンの場合、kvm-intel.ko を kvm-amd.ko に置き換えます。開始されたサービスを開始しようとしていないことを確認するために、健全性チェックが必要であることに注意してください。これらは追加していません。それらを宿題と考えてください。

同様に、プロセッサのアーキテクチャにも注意してください。ほとんどの人にとって、x86 (および x86_64) は機能しますが、SPARC、ARM、Itanium などの他のアーキテクチャを使用している可能性があるため、それに応じて変更してください。

次に、これらのスクリプトにリンクするデスクトップ ショートカットを配置します。Bob はあなたのおじです。特定のカーネル バージョンの代わりに uname を使用すると、カーネルのアップグレード後でもスクリプトが動作することが保証されます。

結論

おわかりのように、現実はあなたが期待しているほど厳しいものではありません。このチュートリアルでは、どちらか一方をアンインストールしたり、頻繁に再起動したりすることなく、VirtualBox と KVM を連携させる簡単な方法を明らかにします。 Linux アーキテクチャではモジュールのライブ挿入が可能であるため、実際に再起動する必要があるのはカーネルのアップグレードだけです。

このチュートリアルでは、使いやすさと快適さを組み合わせる巧妙な方法、カーネル モジュールを挿入および削除する方法、作業をスクリプト化する方法、KVM と VirtualBox を並べて使用するという望ましい目標を達成する方法など、いくつかのことを説明します。

あなたがこれを気に入ってくれたことを願っています。

乾杯。


  1. VirtualBox でディスクのクローンを作成する方法 - チュートリアル

    ビジネスまたは娯楽で仮想化を使用している場合、VirtualBox に出くわしたことがあるかもしれません。VirtualBox は非常に強力で汎用性の高い無料のソリューションであり、デスクトップ ユーザーがオペレーティング システムを導入する際に非常に柔軟に対応できます。 また、マニアックな趣味で仮想化を楽しんでいるだけの愛好家や、仮想化のおかげで新しいオペレーティング システムの使い方を学んでいる熱心なソフトウェア愛好家以上の場合は、次のシナリオに遭遇することになります。多数の仮想マシンを展開します。 個々のインストールをいじる時間はありません。実際、マシンを 1 つずつ手動で構成す

  2. VirtualBox 3.0.0 はすごい!

    私のお気に入りのデスクトップ仮想化ソフトウェアには、VirtualBox と VMware Server があります。どちらも気に入って使っています。それらは全体的に非常に似ていますが、他の製品にはない独自の機能のサブセットをユーザーに提供し、互いにうまく補完しています. ほんの数日前、興奮の渦中に VirtualBox 3.0.0 がリリースされました。これは、前任者と VMware Server の両方に対して、どれだけうまく機能するかを確認する絶好の機会でした。深呼吸して、私についてきてください。長い紹介であなたを苦しめますが、それだけの価値があるはずです。 比較 ...