Сервер Linux VMware — как можно сказать, являетесь ли Вы vm или реальными аппаратными средствами?

Отслеживаемость является проблемой.

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

Не рискуйте терять отслеживаемость своих системных администраторов и/или своих пользователей.

Я не вижу профессионалов.

46
задан 30 June 2011 в 03:46
14 ответов

Используйте стандартные инструменты Linux для осмотра аппаратных средств в системе.

cat /proc/scsi/scsi

или

ethtool -i eth0

или

dmidecode | grep -i vmware

Если вывод этих команд показывает аппаратные средства с названием производителя "VMware", Вы находитесь на VM VMware. Несколько команд обеспечиваются здесь, потому что конфигурации системы и инструменты отличаются.

29
ответ дан 28 November 2019 в 19:39

Существует удобное приложение, которое могло бы помочь названный virt-какой. Я не использовал его с VMware, но это действительно работало приятно с Qemu.

11
ответ дан 28 November 2019 в 19:39
  • 1
    К сожалению, двоичный об/мин имеет две зависимости dmidecode и util-linux-ng, когда он - TR на коммерческом SuSE. –  mdpc 16 September 2009 в 20:49

Вы смогли добираться и идея путем оглядывания под /sys. Например, /sys/class/dmi/id/sys_vendor имеет значение VMware, Inc..

Если это установлено, можно использовать lshw. Команда lshw -class system возвраты это в моей системе:

server1
    description: Computer
    product: VMware Virtual Platform
    vendor: VMware, Inc.
    version: None
    serial: VMware-...
    width: 64 bits
    capabilities: smbios-2.4 dmi-2.4 vsyscall64 vsyscall32
10
ответ дан 28 November 2019 в 19:39
  • 1
    На экземплярах SuSE, что у меня есть доступ к lshw, не существует. Далее,/sys/class/dmi/... не существует. –  mdpc 16 September 2009 в 02:53

Некоторые виртуальные среды называют некоторые свои виртуальные устройства с именами, которые являются немного контрольными, например, VirtualBox, представляющий видеокарту, которая называет себя "Адаптером дисплея VirtualBox". Но ища те связи Вы к конкретному VM и возможно узкому диапазону версий.

Для Вашего кода могло бы быть возможно видеть, какую виртуализацию это могло настроить. Если это перестало работать полностью, Вы могли бы быть в VM. Но Вы, как мог бы легко быть на поле, которое не имеет никаких способных аппаратных средств VM.

6
ответ дан 28 November 2019 в 19:39
  • 1
    Ваш первый ответ был правильным. Проверьте названия драйвера устройства. –  Izzy 16 September 2009 в 02:47

Вы могли также искать первую часть своего MAC-адреса здесь и видеть, перечислено ли это, как присвоено какой-либо из компаний по виртуализации.

3
ответ дан 28 November 2019 в 19:39
  • 1
    Интересная идея.... Я думаю, что работы (как долго, поскольку сетевое устройство включено в VM ;-)) –  mdpc 16 September 2009 в 21:18

Существует много кода там, чтобы обнаружить, если Вы находитесь в VM или нет. Запустите с красной таблетки и поиска оттуда. Данная статья в Наступательных Вычислениях является также хорошим чтением.

Это то, если ни один из тех легких выше работы :)

4
ответ дан 28 November 2019 в 19:39

Виртуальные устройства будут также показаны lspci и/или информацией о дисковом устройстве в/proc:

lspci | grep -i vmware

grep -i vmware /proc/scsi/scsi /proc/ide/*/model
3
ответ дан 28 November 2019 в 19:39

Мне не нравилось ни одно из этих решений, поскольку обычно существует драйвер CD-ROM VMware или драйвер памяти, установленный, таким образом, dmesg подтверждает или отклоняет его для меня быстро.

[server@user ~]$ dmesg |grep VMware
hda: VMware Virtual IDE CDROM Drive, ATAPI CD/DVD-ROM drive
Vendor: VMware    Model: Virtual disk      Rev: 1.0
Vendor: VMware    Model: Virtual disk      Rev: 1.0
Vendor: VMware    Model: Virtual disk      Rev: 1.0
Vendor: VMware    Model: Virtual disk      Rev: 1.0
Vendor: VMware    Model: Virtual disk      Rev: 1.0
Vendor: VMware    Model: Virtual disk      Rev: 1.0
Vendor: VMware    Model: Virtual disk      Rev: 1.0
VMware memory control driver initialized
1
ответ дан 28 November 2019 в 19:39
facter virtual 
xenu

указывает, что это виртуальная машина. Если он вернул «физический», то верно обратное (не виртуальная машина), например:

facter virtual
Physical
13
ответ дан 28 November 2019 в 19:39

Для Linux вы набираете dmesg |grep DMI:

VIRTUAL HOST OUTPUT

[root@myhost ~]# dmesg |grep DMI
DMI 2.3 present.
DMI: Microsoft Corporation Virtual Machine/Virtual Machine, BIOS 090006  05/23/2012

[root@myhost ~]# dmesg |grep -i virtual
DMI: Microsoft Corporation Virtual Machine/Virtual Machine, BIOS 090006  05/23/2012
Booting paravirtualized kernel on bare hardware
input: Macintosh mouse button emulation as /devices/virtual/input/input1
scsi 0:0:0:0: Direct-Access     Msft     Virtual Disk     1.0  PQ: 0 ANSI: 4
input: Microsoft Vmbus HID-compliant Mouse as /devices/virtual/input/input4

FOR PHYSICAL HOST EXAMPLE

[root@backdev1 ~]# dmesg |grep DMI
DMI 2.5 present.
DMI: IBM System x3650 M3 -[7945AC1]-/90Y4784, BIOS -[D6E153AUS-1.12]- 06/30/2011
4
ответ дан 28 November 2019 в 19:39

В Linux системная информация отображается в / sys / devices / virtual / dmi / id /. См. Мой ответ здесь , где есть удобный сценарий, который покажет вам всю доступную информацию.

root не требуется.

2
ответ дан 28 November 2019 в 19:39

Это сработало лучше, так как дает мне конкретную информацию о производителе и названии продукта.

dmidecode -t system|grep 'Manufacturer\|Product'

Выход на сервер Dell:

Manufacturer: Dell Inc.
Product Name: PowerEdge C5220

Выход на Virtualbox VM:

Manufacturer: innotek GmbH
Product Name: VirtualBox

Выход на KVM/QEMU:

Manufacturer: QEMU
Product Name: Standard PC (i440FX + PIIX, 1996)

Это отлично подходит для скриптов, которые могут разобрать их для лучшей идентификации серверов... но если Вы используете Chef в своей инфраструктуре, Вы можете проверить атрибут узла Виртуализация -> система на сервере Chef .

.
1
ответ дан 28 November 2019 в 19:39

Вещи несколько изменились за почти 11 лет с тех пор, как был задан этот вопрос.

Если вы используете дистрибутив с установленным systemd (относительно исходного вопроса OP, SLES использует systemd начиная с v12), systemd-detect-virt, вероятно, будет работать, не требует root и выдает наиболее удобный для сценариев вывод без требуется дальнейшее массирование:

$ systemd-detect-virt
vmware
1
ответ дан 7 July 2020 в 01:07

Теги

Похожие вопросы