これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、MAC OS オンライン エミュレーターなどの複数の無料オンライン ワークステーションの XNUMX つを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド virt-what です。
プログラム:
NAME
virt-what - 仮想マシンで実行されているかどうかを検出します
概要
virt-what [オプション]
DESCRIPTION
「virt-what」は、プログラムが実行されているかどうかを検出するために使用できるシェル スクリプトです。
仮想マシン
プログラムは、仮想マシンに関する「事実」のリストを出力します。
経験則。 XNUMX 行に XNUMX つのファクトが出力されます。
何も出力されず、スクリプトがコード 0 (エラーなし) で終了した場合、次のような意味が考えられます。 どちら
プログラムがベアメタル上で実行されていること or プログラムは次のタイプの中で実行されています
未知の仮想マシン、または検出できない仮想マシン。
FACTS
ハイパーブ
これは Microsoft Hyper-V ハイパーバイザーです。
ステータス: RWMJ によって確認済み
IBM_systemz
これは、IBM SystemZ (またはその他の S/390) ハードウェア パーティショニング システムです。 追加
以下に挙げる事実も印刷される場合があります。
ibm_systemz-direct
これは、IBM SystemZ ハードウェア パーティショニング システム上で直接実行される Linux です。
これは非常に珍しい構成であることが予想されます。この結果が表示された場合は、
疑いを持って扱うべきだ。
ステータス: 未確認
ibm_systemz-lpar
これは、IBM SystemZ ハードウェア パーティショニング上の LPAR 上で直接実行される Linux です。
システム。
ステータス: 未確認
ibm_systemz-zvm
これは、IBM SystemZ ハードウェア パーティショニング上の LPAR で実行されている z/VM ゲストです。
システム。
ステータス: z/VM で実行されている Fedora ゲストを使用して RWMJ によって確認済み
linux_vserver
これは、以前の virt-what との下位互換性のために出力されます。
Linux VServer コンテナのゲストとホストを区別します。
linux_vserver-ゲスト
このプロセスは、Linux VServer コンテナーで実行されます。
ステータス: BarXX Metin による寄稿
linux_vserver-ホスト
このプロセスは、Linux VServer ホスト (VxID 0) として実行されます。
ステータス: BarXX Metin と Elan Ruusamaee による寄稿
lxc このプロセスは Linux LXC コンテナーで実行されます。
ステータス: Marc Fournier による寄稿
kvm このゲストは、ハードウェア アクセラレーションを使用して KVM ハイパーバイザー上で実行されています。
ハイパーバイザーがソフトウェア アクセラレーションを使用している場合は、次のことを行う必要があることに注意してください。 これを見て、
ただし、代わりに「qemu」という事実を確認する必要があります。
ステータス: RWMJ によって確認されました。
openvz
ゲストは OpenVZ または Virtuozzo コンテナ内で実行されているようです。
ステータス: Evgeniy Sokolov による寄稿
類似
ゲストは Parallels 仮想プラットフォーム (Parallels Desktop、Parallels) 内で実行されています。
サーバ)。
ステータス: Justin Clift による寄稿
powervm_lx86
ゲストは、IBM PowerVM Lx86 Linux/x86 エミュレーター内で実行されています。
ステータス: データはもともと Jeffrey Scheel によって提供され、Yufang Zhang と RWMJ によって確認されました。
qemu
ソフトウェアエミュレーションを使用した QEMU ハイパーバイザーです。
KVM (ハードウェア アクセラレーション) ゲストの場合は、次のことを行う必要があることに注意してください。 これを見てください。
ステータス: RWMJ によって確認されました。
UML これはユーザーモード Linux (UML) ゲストです。
ステータス: ローラン・レナードによる寄稿
美徳
ある種の仮想化が存在しているようですが、それが何であるかはわかりません。 の
仮想化を検出するのが難しいことがわかっている、非常にまれな特殊なケースもあります。
特定の機械命令がさらに実行されているかどうかを確認するためにタイミング攻撃を試みます
本来よりも遅い場合は、仮想化を示している可能性があります。 この場合、
一般的な事実「virt」が出力されます。
徳
これは、Hitachi Virtualization Manager (HVM) Virtage ハードウェア パーティショニング システムです。
ステータス: Bhavna Sarathy から提供されたデータ、未確認
のvirtualbox
これはVirtualBoxのゲストです。
ステータス: ローラン・レナードによる寄稿
仮想PC
ゲストは Microsoft VirtualPC 上で実行されているようです。
ステータス: 未確認
ヴイエムウェア
ゲストは VMware ハイパーバイザー上で実行されているようです。
ステータス: RWMJ によって確認済み
ゼン ゲストは Xen ハイパーバイザー上で実行されているようです。
ステータス: RWMJ によって確認済み
xen-dom0
これは Xen dom0 (特権ドメイン) です。
ステータス: RWMJ によって確認済み
ゼンダムU
これは、Xen domU (準仮想化ゲスト ドメイン) です。
ステータス: RWMJ によって確認済み
xen-hvm
これは、完全仮想化された Xen ゲスト (HVM) です。
ステータス: RWMJ によって確認済み
EXIT ステータス
「virt-what」を使用またはラップするプログラムは、終了ステータスが 0 であることを確認してから実行する必要があります。
コマンドの出力を解析してみます。
ゼロ以外の終了ステータスは、コマンド ラインが認識されないなど、何らかのエラーを示します。
口論。 終了ステータスがゼロ以外の場合、出力「事実」(出力された場合)
は保証できないため、無視する必要があります。
終了ステータスは次のようになります。 プログラムが実行されているかどうかとは関係ありません
ベアメタルか仮想化下か、また「virt-what」が管理対象の検出かどうか
「正しく」(仮想化の種類が豊富であるため、基本的には認識できません)
システムが存在しており、一部のシステムは他のシステムを意図的にエミュレートしていることもわかります)。
ランニング 仮想何 FROM その他 プログラム
「virt-what」は、他のプログラムから簡単に実行したり、次のようにラップしたりできるように設計されています。
図書館。
プログラムは終了ステータスをチェックする必要があります (上記のセクションを参照)。
一部のプログラミング言語 (特に Python: issue 1652) は、「SIGPIPE」を誤ってマスクします。
シグナルを生成し、サブプロセスの実行時にそれを復元しないでください。 「virt-what」はシェルスクリプトです
これを実行すると、一部のシェル コマンドが正しく動作しなくなります。 からの警告が表示される場合があります。
「virt-what」はこれに似ています:
エコー: 書き込みエラー: パイプが壊れています
解決策は、実行前に「SIGPIPE」シグナル ハンドラーを「SIG_DFL」に設定し直すことです。
「仮想何」。
重要 注意
ほとんどの場合、このプログラムを使用すると、 間違った やるべき事。 代わりに検出する必要があります
実際に使用したい特定の機能。 (例として、発行したい場合は、
Xen ハイパーバイザー コマンドでは、「/proc/xen/privcmd」ファイルを探します)。
しかし、人々はこれを求め続けているので、私たちはそれを提供しています。 正当な使用法がいくつかあります。
バグ報告ツール
仮想化がプログラムの実行方法に影響を与える可能性があると考えられる場合は、次のようにするかもしれません。
バグ報告ツールでこれを報告するには、「virt-what」を使用してください。
ステータス表示および監視ツール
この情報をステータスおよび監視プログラムに含めることができます。
システムチューニング(場合によっては)
このプログラムを使用してオペレーティング システムを調整し、仮想システムとしてより適切に動作するようにすることができます。
特定のハイパーバイザーのマシン。 ただし、準仮想化ドライバーをインストールする場合は、
ドライバーが必要とする特定の機能を確認することをお勧めします(たとえば、ドライバーの存在など)
PCI デバイスの)。
onworks.net サービスを使用してオンラインで virt-what を使用する