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종료 상태를 사용할 수도 있습니다.

관련 정보