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

Linuxシステムが物理マシンか仮想マシンかを確認する方法

Linux管理者は、物理マシンと仮想マシンのどちらで作業しているのか疑問に思うことがあります。ほとんどの場合、サーバーにリモートでアクセスして管理します。サーバーに常に物理的にアクセスできるとは限らず、サーバーがどこにあるかを実際に知らない場合もあります。ただし、いくつかのLinuxユーティリティを使用して、Linuxシステムが物理マシンであるか仮想マシンであるかを確認することは可能です。このガイドには、作業しているLinuxシステムが物理サーバーであるか仮想サーバーであるかを確認するためのすべての可能な方法がリストされています。

Linuxシステムが物理マシンか仮想マシンかを確認する

システムが物理的であるか仮想的であるかを見つける方法はたくさんあります。現在、以下の方法を知っています。今後、他の方法が見つかったら更新します。

方法1-Dmidecodeユーティリティを使用する

仮想マシンと物理マシンのどちらで作業しているかを確認する最も簡単な方法は、 dmidecodeを使用することです。 効用。 Dmidecode(DMIテーブルデコーダー)は、システムのハードウェアコンポーネント、およびシリアル番号やBIOSリビジョンなどの他の有用な情報を見つけるために使用されます。

Dmidecodeは、ほとんどのLinuxディストリビューションにプリインストールされています。念のため、まだインストールされていない場合は、ディストリビューションのパッケージマネージャーを使用してインストールできます。たとえば、次のコマンドは、Ubuntu、LinuxMintなどのDEBベースのシステムにdmidecodeをインストールします。

$ sudo apt-get install dmidecode

Dmidecodeをインストールした後、次のコマンドを実行して、システムが物理マシンであるか仮想マシンであるかを確認します。

$ sudo dmidecode -s system-manufacturer

物理システムの場合は、次のような出力が得られます。

Dell Inc.

Virtualboxで作成された仮想システムの場合、次の出力が得られます。

innotek GmbH

疑問に思っている人のために、 innotek はドイツを拠点とするソフトウェア会社で、 VirtualBoxと呼ばれるPC仮想化ソフトウェアを開発しています。 。

KVM / QEMUで作成された仮想システムの場合、出力は次のようになります。

QEMU

上記の出力にあるように、それが物理システムの場合、dmidecodeは製造元の名前(つまり、Dell Inc.)を表示します。仮想システムの場合は、仮想化ソフトウェア/テクノロジー(VirtualBoxまたはQEMUなど)が表示されます。

また、このコマンドを使用して、物理システムか仮想システムかを確認できます。

$ sudo dmidecode | grep Product

出力例:

[Physical system]

Product Name: 01HXXJ
Product Name: Inspiron N5050

[Virtual system on VirtualBox]

Product Name: VirtualBox
Product Name: VirtualBox

[Virtual system on KVM/QEMU]

Product Name: Standard PC (Q35 + ICH9, 2009)

物理システムか仮想システムかを確認する別のコマンドは次のとおりです。

$ sudo dmidecode -s system-product-name

出力例:

[Physical system]

Inspiron N5050

[Virtual system on VirtualBox]

VirtualBox

[Virtual system on KVM/QEMU]

Standard PC (Q35 + ICH9, 2009)

リモートシステムのタイプを見つけるためのさらに別のdmidecodeコマンドは次のとおりです。

$ sudo dmidecode | egrep -i 'manufacturer|product'

出力例:

[Physical system]

 Manufacturer: Intel 
 Manufacturer: Sanyo 
 Manufacturer: Not Specified
 Manufacturer: Dell Inc.
 Product Name: 01HXXJ
 Manufacturer: Dell Inc.
 Manufacturer: Dell Inc.
 Product Name: Inspiron N5050
 Manufacturer: 014F

[Virtual system on VirtualBox]

 Manufacturer: innotek GmbH
 Product Name: VirtualBox
 Manufacturer: Oracle Corporation
 Product Name: VirtualBox
 Manufacturer: Oracle Corporation

[Virtual system on KVM/QEMU]

Manufacturer: QEMU
Product Name: Standard PC (Q35 + ICH9, 2009)
Manufacturer: QEMU
Manufacturer: QEMU
Manufacturer: QEMU
Manufacturer: QEMU

そして、もう1つのdmidecodeコマンドは、同じ目標を達成することです。

$ sudo dmidecode | egrep -i 'vendor'

出力例:

[Physical system]

Vendor: Dell Inc.

[Virtual system on VirtualBox]

Vendor: innotek GmbH

[Virtual system on KVM/QEMU]

Vendor: EFI Development Kit II / OVMF

方法2-Facterユーティリティの使用

要因 システムの情報を収集して表示するためのコマンドラインユーティリティです。 Dmidecodeとは異なり、Facterはデフォルトでプリインストールされていません。使用するLinuxディストリビューションによっては、以下のようにインストールする必要がある場合があります。

Arch Linuxでは、Manjaro Linux:

$ sudo pacman -S facter

Fedoraの場合:

$ sudo dnf install facter

CentOSでは、RHEL:

$ sudo yum install epel-release
$ sudo yum installl facter

openSUSEの場合:

$ sudo zypper install facter

ファクトをインストールしたら、次のコマンドを実行して、システムが物理マシンか仮想マシンかを確認します。

$ facter 2> /dev/null | grep virtual

このコマンドが機能しない場合は、sudo権限を試してください:

$ sudo facter 2> /dev/null | grep virtual

出力例:

[Physical system]

is_virtual => false
virtual => physical

[Virtual system on VirtualBox and KVM/QEMU]

is_virtual => true
virtual => kvm

または、次のコマンドを使用します。

$ facter virtual

または、

$ sudo facter virtual

物理マシンの場合、出力は次のようになります。

physical

仮想マシンの場合、次のような出力が表示されます。

kvm

方法3-lshwユーティリティを使用する

lshw ユーティリティは、Unixライクなシステムの詳細なハードウェア情報を表示する小さなコマンドラインユーティリティです。メモリ構成、ファームウェアバージョン、メインボード構成、CPUバージョンと速度、キャッシュ構成、バス速度などを含むすべてのハードウェアの詳細が表示されます。

一部のLinuxディストリビューションには、lshwがプリインストールされています。まだインストールされていない場合は、以下のようにインストールできます。

Arch Linuxおよびその派生物の場合:

$ sudo pacman -S lshw

Fedoraの場合:

$ sudo dnf install lshw

RHELおよびCentOS、Scientific Linuxなどの派生物:

$ sudo yum install epel-release
$ sudo yum install lshw

Debian、Ubuntu、Linux Mintの場合:

$ sudo apt-get install lshw

SUSE / openSUSEの場合:

$ sudo zypper in lshw

lshwをインストールした後、次のコマンドを実行して、システムが物理的か仮想的かを確認します。

$ sudo lshw -class system

出力例:

[Physical system]

sk 
 description: Portable Computer
 product: Inspiron N5050 (To be filled by O.E.M.)
 vendor: Dell Inc.
 version: Not Specified
 serial: JSQ9PR1
 width: 4294967295 bits
 capabilities: smbios-2.6 dmi-2.6 smp vsyscall32
 configuration: boot=normal chassis=portable sku=To be filled by O.E.M. uuid=44454C4C-5300-1051-8039-CAC04F505231

[Virtual system on VirtualBox]

ubuntuserver 
 description: Computer
 product: VirtualBox
 vendor: innotek GmbH
 version: 1.2
 serial: 0
 width: 64 bits
 capabilities: smbios-2.5 dmi-2.5 vsyscall32
 configuration: family=Virtual Machine uuid=78B58916-4074-42E2-860F-7CAF39B5E6F5

[Virtual system on KVM/QEMU]

centos8uefi.ostechnix.lan   
    description: Computer
    product: Standard PC (Q35 + ICH9, 2009)
    vendor: QEMU
    version: pc-q35-4.2
    width: 64 bits
    capabilities: smbios-2.8 dmi-2.8 smp vsyscall32
    configuration: boot=normal uuid=C40041DE-2E63-094C-8DCF-BBDE29170268
  *-pnp00:00
       product: PnP device PNP0b00
       physical id: 1
       capabilities: pnp
       configuration: driver=rtc_cmos

推奨される読み物:

  • Linuxでハードウェア仕様を見つける方法
  • Linuxでサポートされている最大RAMを確認する方法

方法4-dmesgユーティリティを使用する

dmesgを使用してシステムのタイプを見つけることができます 効用。 dmesgは、カーネルリングバッファを検査または制御するために使用されます。

Linuxシステムが物理的か仮想的かを確認するには、次のコマンドを実行します。

$ sudo dmesg | grep "Hypervisor detected"

システムが物理的なものである場合、出力は表示されません。

システムが仮想マシンの場合、次のような出力が表示されます。

[ 0.000000] Hypervisor detected: KVM

方法5-hostnamectlコマンドを使用する

hostnamectl を使用して、システムが仮想であるか物理であるかを確認できます。 指図。 systemdが必要です 働くために。

$ hostnamectl status

または、

$ hostnamectl

出力例:

[Physical system]

Static hostname: sk
 Icon name: computer-laptop
 Chassis: laptop
 Machine ID: 84e3c8e37e114ac9bc9f69689b49cfaa
 Boot ID: 19cf3572e1634e778b5d494d9c1af6e9
 Operating System: Arch Linux
 Kernel: Linux 4.10.13-1-ARCH
 Architecture: x86-64

[Virtual system on VirtualBox]

Static hostname: ubuntuserver
 Icon name: computer-vm
 Chassis: vm
 Machine ID: 2befe86cf8887ba098b509e457554beb
 Boot ID: 8021c02d65dc46a1885afb25dddcf18c
 Virtualization: oracle
 Operating System: Ubuntu 16.04.1 LTS
 Kernel: Linux 4.4.0-78-generic
 Architecture: x86-64

[Virtual system on KVM/QEMU]

Static hostname: centos8uefi.ostechnix.lan
Icon name: computer-vm
Chassis: vm
Machine ID: de4100c4632e4c098dcfbbde29170268
Boot ID: 6136783bb9c241d08c8901aeecc7c30d
Virtualization: kvm
Operating System: CentOS Linux 8 (Core)
CPE OS Name: cpe:/o:centos:centos:8
Kernel: Linux 4.18.0-80.el8.x86_64
Architecture: x86-64

方法6-systemd-detect-virtを使用する

systemd-detect-virt ツールは仮想化テクノロジーを検出し、完全なマシン仮想化をハードウェアまたはコンテナ仮想化と区別できます。

次のコマンドを実行して、システムが物理的か仮想的かを確認します。

$ systemd-detect-virt

出力例:

[Physical machine]

none

[Virtual machine on VirtualBox]

oracle

[Virtual machine on KVM/QEMU]

KVM

方法7-virt-whatスクリプトを使用する

virt-what は、Red Hatで開発された小さなシェルスクリプトで、仮想マシンと物理マシンのどちらで実行されているかを確認します。 virt-RHEL、Fedora、CentOS、Debian、Ubuntu、Arch Linux(AUR)などの一般的なすべてのLinuxディストリビューションにパッケージ化されているもの。

Arch Linuxでは、 Yay などのAURヘルパーを使用して、AURからインストールできます。 。

$ yay -S virt-what

RHEL、Fedora、CentOSの場合:

$ sudo yum install virt-what

Debian、Ubuntuの場合:

$ sudo apt-get install virt-what

インストールしたら、次のコマンドを実行して表示し、システムが物理的か仮想的かを確認します。

$ sudo virt-what

何も出力されず、スクリプトがコード0で終了する場合 (エラーなし)の場合、システムが物理的であるか、仮想マシンの一種であり、私たちが知らないか、検出できないことを意味します。

システムが仮想の場合、次のような出力が表示されます。

virtualbox
kvm

詳細については、プロジェクトのホームページを参照してください。

  • http://people.redhat.com/~rjones/virt-what/

方法8-imvirtスクリプトを使用する

imvirt もう1つの小さなperl 仮想マシンで実行されているかどうかを検出するのに役立つスクリプト。

Arch Linuxでは、 Yayを使用してAURからインストールできます。 ヘルパープログラム。

$ yay -S imvirt

Debian、Ubuntu、Linux Mintの場合:

$ sudo apt-get install imvirt

インストールしたら、次のコマンドを実行して表示し、システムが物理的か仮想的かを確認します。

$ sudo imvirt

システムが物理的である場合、出力は次のようになります。

physical

システムが仮想の場合、次のように表示されます。

KVM

詳細については、プロジェクトのホームページを参照してください。

  • http://micky.ibh.net/~liske/imvirt.html

関連記事:

  • Linuxシステムが32ビットか64ビットかを確認する方法
  • CPUが仮想化テクノロジー(VT)をサポートしているかどうかを確認する方法

そして、今のところこれですべてです。 Linuxボックスが物理的であるか仮想的であるかを確認する他の方法を知っている場合は、コメントセクションでお知らせください。それに応じてガイドを確認して更新します。


Linux
  1. RedhatLinuxでKVMベースの仮想マシンを削除する方法

  2. OSとLinuxのバージョンを確認する方法

  3. Linuxシステムが32ビットか64ビットかを確認する方法

  1. Linuxでシステムの稼働時間を確認する方法

  2. Ubuntu Linuxサーバーの稼働時間を確認する-その方法は?

  3. Linuxシステムが物理システムまたは仮想マシンで実行されているかどうかを確認するにはどうすればよいですか?

  1. Linuxバージョンを確認する方法

  2. Linuxでカーネルバージョンを確認する方法

  3. マシンが物理マシンか仮想マシンかを判断する Linux コマンド