8

質問に説明はいらないと思います。仮想マシンを起動してネットワークをシミュレートできるソフトウェアを作成しています。ソフトウェアが既に仮想マシンで実行されている場合、この機能を無効にしたいと考えています。

私はすでにこの投稿を読みました:アプリケーションが仮想マシンで実行されているかどうかを検出するにはどうすればよいですか? しかし、私は Linux でそれを行う必要があり、その投稿は Windows のみをカバーしています。

PerlPerlでやったので質問としてタグ付けしていますが、おそらくprocチェックするファイルがどこかにあるので、すべての言語で同じです。実際にはわかりません。

主に VirtualBox と KVM を検出することに興味があります。これらは私が使用している VM です。

それで、何か提案はありますか?

4

3 に答える 3

14

ゲスト オペレーティング システムとして Linux を実行している VMware および仮想 Box 仮想マシンに固有の話をします。以下のコマンドを実行すると、基盤となるハードウェアが仮想マシンであることを証明する VMware/VirtualBox であることがわかります。

VMware ゲストの場合:

# dmidecode  | grep -i product
        Product Name: VMware Virtual Platform

Virtual Box ゲストの場合:

# dmidecode  | grep -i product
    Product Name: VirtualBox

" dmidecode" は Linux システムのコマンドです。スクリプトの先頭でperl を実行dmidecodeして、値を抽出できます。仮想マシンの場合、スクリプトはそれ以上実行せずに終了する必要があります。

上記のコマンドが返すものを取得するために自由に使える他のハイパーバイザーはありません。

お役に立てれば。

于 2012-10-13T18:58:20.697 に答える
3

簡単な Google の結果dmo.ca/ blog/ 仮想化を検出する方法

Perl モジュールとすべて。

于 2012-10-13T15:04:09.703 に答える
1

CPAN で利用可能なSys::Detect::Virtualizationを試しましたか?

于 2012-10-13T15:05:39.707 に答える