Обнаружить виртуализацию в 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 также будет доступен. Иначе, код довольно прост для вас, чтобы написать...