dmidecode -s system-product-name
Vmware Workstation、VirtualBox、KVM を使用した QEMU、ゲスト OS として Ubuntu を使用したスタンドアロン QEMU でテストしました。また、使い慣れたプラットフォームを追加した人もいます。
仮想化テクノロジー
-
VMware ワークステーション
[email protected]:~# dmidecode -s system-product-name VMware Virtual Platform
-
VirtualBox
[email protected]:~# dmidecode -s system-product-name VirtualBox
-
KVM を使用した Qemu
[email protected]:~# dmidecode -s system-product-name KVM
-
Qemu (エミュレート)
[email protected]:~# dmidecode -s system-product-name Bochs
-
Microsoft VirtualPC
[email protected]:~# dmidecode | egrep -i 'manufacturer|product' Manufacturer: Microsoft Corporation Product Name: Virtual Machine
-
名人
[email protected]:~# dmidecode /dev/mem: Permission denied
-
ゼン
[email protected]:~# dmidecode | grep -i domU Product Name: HVM domU
ベア メタルでは、これはコンピューターまたはマザーボード モデルの ID を返します。
/dev/disk/by-id
dmidecode
を実行する権限がない場合 次に使用できます:
仮想化技術:QEMU
ls -1 /dev/disk/by-id/
出力
[[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
参考文献
- dmo.ca で仮想化を検出する方法
コンテナが実行中の場合 systemd
:
$ systemd-detect-virt
lxc
たとえば、KVM では次のように返されます:
kvm
仮想化されていないホスト:
none
こちらもご覧ください:
- systemd-detect-virt(1)
- 仮想化の検出
望ましい方法
lshw
このコマンドは、さまざまな VM テクノロジ ゲストで次の出力を生成します。
$ sudo lshw -class system
出力
-
KVM
mungr description: Computer product: KVM vendor: Red Hat width: 64 bits capabilities: smbios-2.4 dmi-2.4 vsyscall64 vsyscall32
-
仮想ボックス
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
スクリプト
Ubuntu/Debian を使用している場合は、パッケージ open-vm-tools
があります。 インストールできます。 vmware-checkvm
を提供します .数字のみを返します。 0
VM、1
であることを意味します 物理的なシステムであることを意味します。
あまり望ましくない方法
KVM の場合は /proc/scsi/scsi
および ethtool
オプションは次のように表示されます:
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
virtio_net は KVM の一部です。 /proc/scsi/scsi
は、あなたが VM にいて、KVM である可能性が高いことを示しています。
dmesg
次のコマンドを使用 grep
'ing through dmesg
ログ。
$ 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 または KVM
"-cpu host"
の場合 オプションが使用されていない場合、QEmu と KVM は自身を次のように識別します:CPU: AMD QEMU Virtual CPU version 0.9.1 stepping 03
そうでない場合、ホストの CPU 情報が両方の
dmesg
で使用されます。 、または/proc/cpuinfo
.ただし、次のように表示されるはずです:[ 0.000000] Booting paravirtualized kernel on KVM
準仮想化で実行されていることを認識している新しいカーネル。
-
Microsoft VirtualPC
hda: Virtual HD, ATA DISK drive hdc: Virtual CD, ATAPI CD/DVD-ROM drive
-
ゼン
$ sudo dmesg | grep -i xen Xen virtual console successfully installed as tty1
-
名人
# 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
参考文献
- dmo.ca/ blog/ 仮想化を検出する方法