게스트 추가 기능이 설치되지 않았음에도 불구하고 hostnamectl이 가상화를 표시하는 이유는 무엇입니까?

게스트 추가 기능이 설치되지 않았음에도 불구하고 hostnamectl이 가상화를 표시하는 이유는 무엇입니까?

저는 Virtualbox에서 매우 기본적인 데비안 9 OS를 실행하고 있으며, 무엇을 얻든 반가상화|게스트 추가 기능을 설치하지 않았습니다 Virtualization: oracle. 왜? 운영 체제는 자신이 실제 하드웨어에서 실행되고 있는지 가상 하드웨어에서 실행되고 있는지 알아야 하지 않습니까?

답변1

가장 실용적인 가상화 솔루션을 테스트하는 것은 어렵지 않습니다.

Linux 커널은 최소한 VMware, HyperV, Xen 및 KVM을 감지할 수 있습니다. 출력에서 ​​유사한 메시지를 찾으십시오 Hypervisor detected: <virtualization type>.dmesg

VMware 및 HyperV가 프로세서 opcode 결과에 추가하는 서명 정보를 통해 cpuid최소한 매우 낮은 수준에서 감지할 수 있습니다 . dmidecode및/또는의 출력을 보는 것은 lspci다양한 형태의 가상화를 감지하는 또 다른 빠른 방법입니다.

실용적인 이유로 대부분의 가상화 솔루션은 VM에 간단하고 잘 지원되는 시스템 구성 요소 집합을 제공합니다. 이로 인해 실제 물리적 하드웨어에서는 의미가 없는 조합이 발생하는 경우가 많습니다. 예를 들어 동일한 시스템에 Intel ICH8M SATA 컨트롤러와 Intel PIIX3 ISA Bridge가 있는 경우 이는 매우 확실한 증거입니다. 둘 다 있어야 합니다. 장치는 다음과 같습니다. 시스템 칩셋에 통합되어 있지만그들은 매우 다른 칩셋에 속합니다따라서 동일한 물리적 시스템에 동시에 존재하지 않습니다.

또한 클럭 속도가 두 자릿수 MHz 값으로 측정되는 원래 Pentium II 칩과 함께 사용되는 시스템 칩셋의 일부인 부품을 볼 수 있지만 프로세서는 다중 GHz 속도를 주장한다면 가상화가 진행되고 있음을 알 수 있습니다. 에. .

또한보십시오:가상화 기술을 식별하는 쉬운 방법

systemd가상 머신 및 컨테이너를 제어하도록 설계된 기능이 포함되어 있으므로 기본 라이브러리에 일련의 가상화 감지 루틴이 포함될 수도 있습니다. 당신은 또한 그들을 결합할 수 있습니다systemd-Detect-virt 명령.

관련 정보