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