GNU/Linux >> Linux の 問題 >  >> Linux

仮想化技術を判断する簡単な方法

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/ 仮想化を検出する方法

Linux
  1. Linuxでファイルとディレクトリを隠す簡単な方法

  2. SSH速度テストを確認する簡単な方法

  3. N重複ファイルをハードリンクに置き換える簡単な方法は?

  1. 複数のAWSCodeCommitリポジトリに接続する簡単な方法

  2. KVMサーバーを高速にセットアップする方法

  3. Easy VMware Ubuntu 21.10インストール(ビデオ)

  1. VirtualboxとVMware:直接比較

  2. DdへのBsパラメータの最適値を決定する方法は?

  3. Linux – Linuxマシンの仮想化テクノロジーを決定する簡単な方法は?