Как администратор Linux, иногда можно попасть в такую ситуацию, когда вы не знаете, работаете ли вы на физической или виртуальной машине. В большинстве случаев, вы будете работать на серверах и управлять ими удаленно. У вас не всегда может быть физический доступ к вашим серверам, и вы даже можете не знать, где находится сервер. Однако можно проверить, является ли ваша система Linux физической или виртуальной машиной, используя несколько полезных утилит.

В этой статье постарался собрать все возможные способы проверить, является ли система Linux, на которой вы работаете, физическим или виртуальным сервером.

Существует множество способов определить, является ли система физической или виртуальной. Постарался перечислить все способы, которые мне известны. Если в ближайшие дни найду какие-либо другие способы, обязательно дополню статью. Так же не забывайте оставлять свои способы в комментариях ниже.

Способ 1 — использование утилиты Dmidecode.

Самый простой способ узнать, работаем ли мы на виртуальной или физической машине, — использовать утилиту dmidecode. Dmidecode, декодер таблиц DMI, используется для поиска аппаратных компонентов вашей системы, а также другой полезной информации, такой как серийные номера и версия BIOS.

Dmidecode предустановлен в большинстве дистрибутивов Linux. Если же он у вас отсутствует, то можете установить его с помощью менеджера пакетов вашего дистрибутива. Скажем, например, следующая команда установит dmidecode в системах на базе DEB, таких как Ubuntu, Linux Mint.

После установки выполните следующую команду, чтобы узнать, является ли ваша система физической или виртуальной машиной:

Если это физическая система, вы получите примерно такой результат:

Если это виртуальная система, созданная с помощью Virtualbox, вы получите следующий вывод:

Для тех, кому интересно, innotek — это немецкая компания-разработчик программного обеспечения, которая разрабатывает программное обеспечение для виртуализации ПК под названием VirtualBox.

Если это виртуальная система, созданная с помощью KVM/QEMU, результат будет следующим:

Как вы видите в приведенном выше выводе, если это физическая система, dmidecode отобразит имя производителя (т. е. HP, Dell Inc., Intel и т. д. ). Если это виртуальная система, то будет показано программное обеспечение/технология виртуализации (например, VirtualBox или QEMU).

Кроме того, вы можете использовать следующую команду, чтобы проверить, физическая это или виртуальная система.

На физической машине или на виртуальной будет вывод примерно такой:

Еще одна команда dmidecode для определения типа удаленной системы:

Способ 2 — использование утилиты Factor.

Facter — это утилита командной строки для сбора и отображения информации о системе. В отличие от Dmidecode, Facter обычно не предустановлен по умолчанию. Возможно, вам придется установить его, как показано ниже, в зависимости от используемого вами дистрибутива Linux.

После установки facter выполните сле

дующую команду, чтобы проверить, является ли система физической или виртуальной машиной:

Так же можно использовать следующую команду:

Если у вас не получится запустить команду от обычного, используйте sudo.

Способ 3. Использование утилиты lshw

Утилита lshw — это небольшая утилита командной строки, которая отображает подробную информацию об оборудовании Unix-подобной системы. Он отображает все сведения об оборудовании, включая конфигурацию памяти, версию прошивки, конфигурацию материнской платы, версию и скорость процессора, конфигурацию кэша, скорость шины и т. д.

В некоторых дистрибутивах Linux предустановлен lshw. Если он еще не установлен, вы можете установить его, используя следующие команды:

После установки lshw выполните следующую команду, чтобы узнать, является ли ваша система физической или виртуальной:

Способ 4. Использование утилиты dmesg.

Тип системы можно узнать с помощью утилиты dmesg.

Чтобы проверить, является ли ваша система Linux физической или виртуальной, используйте следующую команду:

Если ваша система является физической, то вывод будет пустым. В случае использования виртуальной машины, вы увидите результат, подобный приведенному выше.

Способ 5 — использование команды hostnamectl.

Мы можем узнать, является ли наша система виртуальной или физической, используя команду hostnamectl. Не сработает в системах, которые не используют systemd.

Вывод будет следующим:

Способ 6 — использование systemd-detect-virt.

Инструмент systemd-detect-virt обнаруживает технологию виртуализации и может отличить полную виртуализацию машины от аппаратной или контейнерной виртуализации.

Способ 7 — Использование скрипта virt-what

Virt-what — это небольшой сценарий оболочки, разработанный в Red Hat, чтобы определить, работаем ли мы на виртуальной или физической машине. virt-what, присутствуют в большинстве репозиториев популярных дистрибутивов Linux, таких как RHEL, Fedora, CentOS, Debian, Ubuntu, Arch Linux (AUR).

Установить его можно следующими командами в зависимости от используемого дистрибутива.

После установки выполните следующую команду, чтобы проверить, является ли ваша система физической или виртуальной:

Если ничего не выводится и сценарий завершается с кодом 0 (нет ошибок), то это означает, что либо система является физической, либо представляет собой тип виртуальной машины, о которой приложение не знает или не может обнаружить.

Если ваша система виртуальная, вы увидите результат, как показано выше.

Способ 8 — Использование скрипта imvirt

Imvirt — это еще один небольшой Perl-скрипт, который поможет вам определить, работаем ли мы на виртуальной машине или нет.

Установить его можно следующими командами, в зависимости от вашего дистрибутива:

После установки выполните следующую команду, чтобы отобразить, является ли ваша система физической или виртуальной:

Если ваша система является физической, результат будет таким:

если система виртуальная, вы увидите:

Заключение.

И это все на данный момент. Если вы знаете какие-либо другие способы узнать, является ли Linux-компьютер физическим или виртуальным, сообщите нам об этом в разделе комментариев. Проверю и дополню статью.

Добавить комментарий