Обнаружить виртуализацию в Bash

Одна из моих команд в моем скрипте bash будет зависеть от виртуализации сервера (XEN или OpenVZ или KVM). Как я могу проверить, какой из них используется в bash?

3 ответа

Решение

Я нашел небольшой сценарий оболочки, который способен обнаруживать виртуализацию и обрабатывает Xen,OpenVZ,KVM,Parallels, Vmware и многие другие.

virt-what

Установка с Yum довольно проста

Вот вывод на моей системе

$ virt-what
kvm 

Есть очень полезный скрипт imvirt это работает с Xen, OpenVZ, VMware, VirtualBox, KVM и многими другими. Он доступен в виде пакета в Debian или на веб-сайте imvirt.

$ imvirt
Xen PV 4.1

Если вы хотите определить хост (dom0) для xen, проверьте

[ "$(cat /proc/xen/capabilities)" == "control_d" ]

Если вы хотите обнаружить в ВМ,
Вам нужно выполнить cpuid инструкция в ВМ, с original_eax=1.
Если для результирующего ecx установлено значение MSB ((ecx & 0x80000000) != 0), то вы под ВМ.
Предполагается, что ваш гипервизор поддерживает интерфейс viridian. Ксен делает.
cpuid Пакет легко доступен для многих дистрибутивов Linux. Я уверен, что порт Windows также будет доступен. Иначе, код довольно прост для вас, чтобы написать...

Другие вопросы по тегам