dmidecode -s system-product-name
Ich habe auf Vmware Workstation, VirtualBox, QEMU mit KVM, Standalone-QEMU mit Ubuntu als Gastbetriebssystem getestet. Andere haben zusätzliche Plattformen hinzugefügt, mit denen sie ebenfalls vertraut sind.
Virtualisierungstechnologien
-
VMware Workstation
[email protected]:~# dmidecode -s system-product-name VMware Virtual Platform
-
VirtualBox
[email protected]:~# dmidecode -s system-product-name VirtualBox
-
Qemu mit KVM
[email protected]:~# dmidecode -s system-product-name KVM
-
Qemu (emuliert)
[email protected]:~# dmidecode -s system-product-name Bochs
-
Microsoft VirtualPC
[email protected]:~# dmidecode | egrep -i 'manufacturer|product' Manufacturer: Microsoft Corporation Product Name: Virtual Machine
-
Virtuozzo
[email protected]:~# dmidecode /dev/mem: Permission denied
-
Xen
[email protected]:~# dmidecode | grep -i domU Product Name: HVM domU
Auf Bare-Metal gibt dies eine Identifikation des Computer- oder Motherboard-Modells zurück.
/dev/disk/by-id
Wenn Sie nicht über die Rechte zum Ausführen von dmidecode
verfügen dann können Sie verwenden:
Virtualisierungstechnologie:QEMU
ls -1 /dev/disk/by-id/
Ausgabe
[[email protected] ~]# ls -1 /dev/disk/by-id/
ata-QEMU_DVD-ROM_QM00003
ata-QEMU_HARDDISK_QM00001
ata-QEMU_HARDDISK_QM00001-part1
ata-QEMU_HARDDISK_QM00002
ata-QEMU_HARDDISK_QM00002-part1
scsi-SATA_QEMU_HARDDISK_QM00001
scsi-SATA_QEMU_HARDDISK_QM00001-part1
scsi-SATA_QEMU_HARDDISK_QM00002
scsi-SATA_QEMU_HARDDISK_QM00002-part1
Referenzen
- So erkennen Sie Virtualisierung bei dmo.ca
Wenn der Container systemd
ausführt :
$ systemd-detect-virt
lxc
Auf KVM gibt es zum Beispiel zurück:
kvm
und auf einem nicht virtualisierten Host:
none
Siehe auch:
- systemd-detect-virt(1)
- Virtualisierung erkennen
Wünschenswerte Methode
lshw
Dieser Befehl erzeugt die folgende Ausgabe auf verschiedenen VM-Technologie-Gästen.
$ sudo lshw -class system
Ausgabe
-
KVM
mungr description: Computer product: KVM vendor: Red Hat width: 64 bits capabilities: smbios-2.4 dmi-2.4 vsyscall64 vsyscall32
-
Virtuelle Box
fedora17 description: Computer product: VirtualBox () vendor: innotek GmbH version: 1.2 serial: 0 width: 64 bits capabilities: smbios-2.5 dmi-2.5 vsyscall32
-
VMWare
partedmagic description: Computer product: VMware Virtual Platform () vendor: VMware, Inc. version: None serial: VMware-56 4d 94 a0 53 e3 f3 c6-f9 a6 eb 1a 89 70 04 57 width: 32 bits capabilities: smbios-2.4 dmi-2.4 smp-1.4 smp
Skripterstellung
Wenn Sie Ubuntu/Debian verwenden, gibt es das Paket open-vm-tools
installiert werden kann. Es bietet vmware-checkvm
. Es gibt nur eine Ziffer zurück. Ein 0
bedeutet, es ist eine VM, eine 1
bedeutet, dass es sich um ein physisches System handelt.
Weniger wünschenswerte Methoden
Wenn es KVM ist, dann /proc/scsi/scsi
und ethtool
Optionen werden wie folgt angezeigt:
SCSI
$ cat /proc/scsi/scsi
Attached devices:
Host: scsi1 Channel: 00 Id: 00 Lun: 00
Vendor: QEMU Model: QEMU DVD-ROM Rev: 0.9.
Type: CD-ROM ANSI SCSI revision: 05
ethtool
$ ethtool -i eth0
driver: virtio_net
version:
firmware-version:
bus-info: virtio0
supports-statistics: no
supports-test: no
supports-eeprom-access: no
supports-register-dump: no
supports-priv-flags: no
Das virtio_net ist Teil von KVM. Die /proc/scsi/scsi
sagt Ihnen, dass Sie sich in einer VM befinden und dass Sie höchstwahrscheinlich KVM sind.
dmesg
Verwenden Sie die folgenden Befehle grep
'durch dmesg
log.
$ sudo dmesg | grep -i virtual
-
VMWare
VMware vmxnet virtual NIC driver Vendor: VMware Model: Virtual disk Rev: 1.0 hda: VMware Virtual IDE CDROM Drive, ATAPI CD/DVD-ROM drive
-
QEmu oder KVM
Wenn der
"-cpu host"
Option nicht verwendet wurde, identifizieren sich QEmu und KVM als:CPU: AMD QEMU Virtual CPU version 0.9.1 stepping 03
andernfalls werden die CPU-Informationen des Hosts sowohl in
dmesg
verwendet , oder in/proc/cpuinfo
. Sie sollten jedoch Folgendes sehen:[ 0.000000] Booting paravirtualized kernel on KVM
In neueren Kerneln, die verstehen, dass sie unter Paravirtualisierung laufen.
-
Microsoft VirtualPC
hda: Virtual HD, ATA DISK drive hdc: Virtual CD, ATAPI CD/DVD-ROM drive
-
Xen
$ sudo dmesg | grep -i xen Xen virtual console successfully installed as tty1
-
Virtuozzo
# method #1 $ sudo dmesg (returns no output) # method #2 $ sudo cat /var/log/dmesg (returns no output) # method #3 $ sudo ls -al /proc/vz veinfo veinfo_redir veredir vestat vzaquota vzdata
Referenzen
- dmo.ca/blog/ So erkennen Sie Virtualisierung