仮想化または仮想化されない可能性があるLinuxシステムへのコマンドラインアクセス権があります。どの仮想化テクノロジ(存在する場合)(VMWare、VirtualBox、KVM、OpenVZ、Xen)で実行されていることを確認したいと思います。これは敵対的な環境ではありません。私は自分を偽装したい仮想マシンと戦うつもりではなく、私がほとんど知らない不安定なサーバーを診断しています。
より正確に言えば、私は船を操縦するのではなく、誰かが問題を診断するのを助けています。したがって、「/proc
どこで遊ぶ」のかわりに「このコマンドをコピーして貼り付ける」などの指示を渡す必要があります。理想的には、lshw
関連情報を検索して印刷できるインストールが簡単な(プレインストールされていない場合)コマンドと同じです。
このシステムが使用できる仮想化技術を決定する最も簡単な方法は何ですか?どのスキル(ベアハードウェアを含む)が最終的に検出され、どのスキルが最終的に取り除かれるかを提案書に記載していただきありがとうございます。私はLinuxに最も興味を持っていますが、他のUnixでも動作することをお勧めします。
答え1
dmidecode -s system-product-name
Vmware Workstation、VirtualBox、KVMのあるQEMU、UbuntuをゲストOSとして使用するスタンドアロンQEMUでテストしました。他の人は自分に慣れている別のプラットフォームを追加しました。
仮想化技術
VMwareワークステーション
root@router:~# dmidecode -s system-product-name VMware Virtual Platform
仮想ボックス
root@router:~# dmidecode -s system-product-name VirtualBox
KVMを搭載したQemu
root@router:~# dmidecode -s system-product-name KVM
Qemu(エミュレーション)
root@router:~# dmidecode -s system-product-name Bochs
マイクロソフト仮想マシン
root@router:~# dmidecode | egrep -i 'manufacturer|product' Manufacturer: Microsoft Corporation Product Name: Virtual Machine
ヴィツオチョ
root@router:~# dmidecode /dev/mem: Permission denied
禅
root@router:~# dmidecode | grep -i domU Product Name: HVM domU
ベアメタルは、コンピュータまたはマザーボードモデルのIDを返します。
/dev/disk/by-id
実行する権限がない場合は、dmidecode
次を使用できます。
仮想化技術:QEMU
ls -1 /dev/disk/by-id/
出力
[root@host-7-129 ~]# 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
引用する
答え2
コンテナが実行中の場合systemd
:
$ systemd-detect-virt
lxc
KVM を例にすると、次のものが返されます。
kvm
仮想化されていないホストでは:
none
また見なさい:
答え3
理想的な方法
長沙
このコマンドは、さまざまなVMテクノロジーゲストから次の出力を生成します。
$ sudo lshw -class system
出力
キーボード仮想マシン
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
仮想マシンソフトウェア
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
スクリプト
open-vm-tools
Ubuntu / Debianを使用している場合は、このパッケージをインストールできます。それは提供するvmware-checkvm
。ただ数を返します。は0
仮想マシンを意味し、1
物理マシンを意味します。
理想的なアプローチではありません。
KVMの場合/proc/scsi/scsi
とethtool
オプションは次のように表示されます。
小型コンピュータシステムインタフェース
$ 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 -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である可能性が最も高いことを示します。
情報
ログをgrep
確認するには、次のコマンドを使用します。dmesg
$ sudo dmesg | grep -i virtual
仮想マシンソフトウェア
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
最新のカーネルでは、半仮想化の下で実行されていることがわかっています。
マイクロソフト仮想マシン
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
引用する
答え4
hostnamectl
あなたの友人ですか?systemd
)。
いくつかの例:
仮想化のないノートパソコン
$ hostnamectl status
Static hostname: earth.gangs.net
Icon name: computer-laptop
Chassis: laptop
Machine ID: 18a0752e1ccbeef09da51ad17fab1f1b
Boot ID: beefdc99969e4a4a8525ff842b383c62
Operating System: Ubuntu 16.04.2 LTS
Kernel: Linux 4.4.0-66-generic
Architecture: x86-64
禅
$ hostnamectl status
Static hostname: pluto.gangs.net
Icon name: computer-vm
Chassis: vm
Machine ID: beef39aebbf8ba220ed0438b54497609
Boot ID: beefc71e97ed48dbb436a470fe1920e1
Virtualization: xen
Operating System: Ubuntu 16.04.2 LTS
Kernel: Linux 3.13.0-37-generic
Architecture: x86-64
オープンVZ
$ hostnamectl status
Static hostname: mars.gangs.net
Icon name: computer-container
Chassis: container
Machine ID: 55296cb0566a4aaca10b8e3a4b28beef
Boot ID: 1bb259b0eb064d9eb8a22d112211beef
Virtualization: openvz
Operating System: CentOS Linux 7 (Core)
CPE OS Name: cpe:/o:centos:centos:7
Kernel: Linux 2.6.32-042stab120.16
Architecture: x86-64
キーボード仮想マシン
$ hostnamectl status
Static hostname: mercury.gangs.net
Icon name: computer-vm
Chassis: vm
Machine ID: beeffefc50ae499881b024c25895ec86
Boot ID: beef9c7662a240b3b3b04cef3d1518f0
Virtualization: kvm
Operating System: CentOS Linux 7 (Core)
CPE OS Name: cpe:/o:centos:centos:7
Kernel: Linux 3.10.0-514.10.2.el7.x86_64
Architecture: x86-64