CPUIDを使用してハイパーバイザー存在ビットが設定されていることを確認する方法

CPUIDを使用してハイパーバイザー存在ビットが設定されていることを確認する方法

現在のコマンドラインでCPUIDを使用して、ハイパーバイザービット(ビット31)がtrueに設定されていることを確認するのに問題があります。

cpuid -1 -r以下のスクリーンショットに示すように、次のコマンドを使用して16進データを取得しています。

この16進値リストからハイパーバイザービット値を正確に取得する方法がわかりません。

この問題の解決にご協力いただきありがとうございます。

ここに画像の説明を入力してください。

答え1

cpuid基本的に提供されているテキスト表現を使用します。

cpuid -1 | grep 'hypervisor guest status'

元の値を使用するには、CPUID#1をフィルタリングしてECX0x80000000以上であることを確認する必要があります。

cpuid -1 -r | grep '^   0x00000001.*ecx=0x[89a-f]'

このビットは、出力が生成されるとセットされ、そうでなければgrep終了状態を使用することもできる。

関連情報