Интересный вопрос Я вошел на хост Linux (скорее всего SuSE). Есть ли какой-то способ, которым я могу программно сказать, что я хост VM или нет?
Также предположим, что vmtools не установлены.
linux
virtualization
Якорь,
источник
источник
Ответы:
Используйте стандартные инструменты Linux для проверки оборудования в системе.
или же
или же
Если выходные данные этих команд показывают аппаратное обеспечение с именем производителя «VMWare», значит, вы находитесь на VMWare VM. Здесь приведены несколько команд, потому что системные конфигурации и инструменты различаются.
источник
cat /proc/scsi/scsi
это хорошо, потому что, кажется, он доступен везде и не требует установки нового программного обеспечения или запуска с привилегированными правами./proc/scsi/scsi
в своей коробке Debian 7 ...man virt-what
Эвристический скрипт, созданный для этой цели обнаружения (для систем RedHat / Fedora), а также сведения о возможных предупреждениях.указывает на то, что это ВМ. Если он вернул «физический», то верно обратное (не виртуальная машина), например:
источник
Есть удобное приложение, которое может помочь, называется virt-what . Я не использовал его с VMWare, но он хорошо работал с Qemu.
источник
Вы могли бы получить и идею, оглядываясь вокруг
/sys
. Например,/sys/class/dmi/id/sys_vendor
имеет значениеVMware, Inc.
.Если он установлен, вы можете использовать lshw . Команда
lshw -class system
возвращает это в моей системе:источник
Некоторые виртуальные среды называют некоторые из своих виртуальных устройств именами, которые являются немного контрольными, например, VirtualBox представляет графическую карту, которая называет себя «VirtualBox Display Adapter». Но поиск этих связей связывает вас с конкретной ВМ и, возможно, с узким диапазоном версий.
Ваш код может увидеть, какой тип виртуализации он может настроить. Если это не удастся полностью, возможно, вы находитесь в виртуальной машине. Но вы так же легко можете оказаться на коробке, где нет аппаратного обеспечения, способного работать с виртуальными машинами.
источник
Для Linux вы набираете
dmesg |grep DMI
:Виртуальный хост-выход
НА ПРИМЕРЕ ФИЗИЧЕСКОГО ХОСТА
источник
Есть много кода, чтобы определить, находитесь ли вы в виртуальной машине или нет. Начните с красной таблетки и ищите оттуда. Эта статья в «Offensive Computing» также хорошо читается.
Это если ни один из тех простых из вышеперечисленных не работает :)
источник
Вы также можете найти первую часть своего mac-адреса здесь и посмотреть, указан ли он как назначенный какой-либо из компаний по виртуализации.
источник
Виртуальные устройства также будут отображаться с помощью информации lspci и / или дискового устройства в / proc:
источник
В Linux системная информация раскрывается в / sys / devices / virtual / dmi / id /. Смотрите мой ответ здесь для удобного сценария, чтобы показать вам всю доступную информацию.
root не требуется.
источник
Мне не понравилось ни одно из этих решений, так как обычно там установлен драйвер VMware CDROM или драйвер памяти, поэтому dmesg быстро подтверждает или отклоняет его для меня.
источник
Это сработало для меня лучше, так как дает конкретную информацию о производителе и названии продукта.
Вывод на сервер Dell:
Вывод на Virtualbox VM:
Выход на KVM / QEMU:
Это отлично подходит для сценариев, которые могут анализировать их для лучшей идентификации серверов ... но если вы используете Chef в своей инфраструктуре, вы можете проверить атрибут узла
Virtualization -> system
на сервере chef.источник
Мне очень нравится:
или бетон:
Как проверить, является ли система Linux физической или виртуальной машиной
16 способов проверить, является ли система Linux физической или виртуальной машиной
источник