GNU/Linux >> Znalost Linux >  >> Linux

Jak zkontrolovat, zda je systém Linux fyzický nebo virtuální stroj

Jako správce Linuxu se někdy můžete divit, zda pracujete na fyzickém nebo virtuálním počítači. Většinu času budete přistupovat ke svým serverům a spravovat je na dálku. Nemusíte mít vždy fyzický přístup ke svým serverům a možná ani ve skutečnosti nevíte, kde se server nachází. Je však možné zkontrolovat, zda je váš systém Linux fyzický nebo virtuální počítač pomocí několika nástrojů Linux. Tato příručka uvádí všechny možné způsoby, jak zkontrolovat, zda je systém Linux, na kterém pracujete, fyzický server nebo virtuální server.

Zkontrolujte, zda je systém Linux fyzický nebo virtuální počítač

Existuje mnoho způsobů, jak zjistit, zda je systém fyzický nebo virtuální. V současné době jsem si vědom následujících metod. Pokud v nadcházejících dnech najdu nějaké jiné způsoby, aktualizuji se.

Metoda 1 – Použití nástroje Dmidecode

Nejjednodušší způsob, jak zjistit, zda pracujeme na virtuálním nebo fyzickém počítači, je pomocí dmidecode  užitečnost. Dmidecode, tabulkový dekodér DMI, se používá k vyhledání hardwarových součástí vašeho systému a také dalších užitečných informací, jako jsou sériová čísla a revize systému BIOS.

Dmidecode je předinstalovaný u většiny distribucí Linuxu. Pro případ, že ještě není nainstalován, můžete jej nainstalovat pomocí správce balíčků vaší distribuce. Řekněme například, že následující příkaz nainstaluje dmidecode do systémů založených na DEB, jako je Ubuntu, Linux Mint.

$ sudo apt-get install dmidecode

Po instalaci Dmidecode spusťte následující příkaz, abyste zjistili, zda je váš systém fyzický nebo virtuální počítač:

$ sudo dmidecode -s system-manufacturer

Pokud se jedná o fyzický systém, dostanete výstup podobný níže.

Dell Inc.

Pokud se jedná o virtuální systém vytvořený pomocí Virtualboxu, získáte následující výstup:

innotek GmbH

Pro ty, kteří se diví,innotek je německá softwarová společnost, která vyvíjí software pro virtualizaci PC s názvem VirtualBox .

Pokud se jedná o virtuální systém vytvořený pomocí KVM/QEMU, výstup bude:

QEMU

Jak vidíte ve výše uvedeném výstupu, pokud se jedná o fyzický systém, dmidecode zobrazí jméno výrobce (tj. Dell Inc.). Pokud se jedná o virtuální systém, zobrazí se virtualizační software/technologie (tj. VirtualBox nebo QEMU).

Tento příkaz můžete také použít ke kontrole, zda se jedná o fyzický nebo virtuální systém.

$ sudo dmidecode | grep Product

Ukázkový výstup:

[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)

Další příkaz pro zjištění, zda se jedná o fyzický nebo virtuální systém je:

$ sudo dmidecode -s system-product-name

Ukázkový výstup:

[Physical system]

Inspiron N5050

[Virtual system on VirtualBox]

VirtualBox

[Virtual system on KVM/QEMU]

Standard PC (Q35 + ICH9, 2009)

Ještě další příkaz dmidecode k nalezení typu vzdáleného systému je:

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

Ukázkový výstup:

[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

A ještě jeden příkaz dmidecode je k dosažení stejného cíle:

$ sudo dmidecode | egrep -i 'vendor'

Ukázkový výstup:

[Physical system]

Vendor: Dell Inc.

[Virtual system on VirtualBox]

Vendor: innotek GmbH

[Virtual system on KVM/QEMU]

Vendor: EFI Development Kit II / OVMF

Metoda 2 – Použití nástroje Factor

Faktor je nástroj příkazového řádku pro shromažďování a zobrazování informací o systému. Na rozdíl od Dmidecode není Factor ve výchozím nastavení předinstalovaný. Možná budete muset nainstalovat, jak je uvedeno níže, v závislosti na distribuci Linuxu, kterou používáte.

V Arch Linuxu, Manjaro Linux:

$ sudo pacman -S facter

Ve Fedoře:

$ sudo dnf install facter

V CentOS, RHEL:

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

V openSUSE:

$ sudo zypper install facter

Po instalaci faktoru spusťte následující příkaz a zkontrolujte, zda je systém fyzický nebo virtuální počítač:

$ facter 2> /dev/null | grep virtual

Pokud tento příkaz nefunguje, zkuste to s právy sudo:

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

Ukázkový výstup:

[Physical system]

is_virtual => false
virtual => physical

[Virtual system on VirtualBox and KVM/QEMU]

is_virtual => true
virtual => kvm

Případně použijte následující příkaz:

$ facter virtual

Nebo,

$ sudo facter virtual

Pokud se jedná o fyzický stroj, výstup bude:

physical

Pokud se jedná o virtuální stroj, uvidíte výstup něco podobného níže.

kvm

Metoda 3 – Použití nástroje lshw

lshw nástroj je malý nástroj příkazového řádku, který zobrazuje podrobné informace o hardwaru systému podobného Unixu. Zobrazuje všechny podrobnosti o hardwaru včetně konfigurace paměti, verze firmwaru, konfigurace základní desky, verze a rychlosti CPU, konfigurace mezipaměti, rychlosti sběrnice atd.

Některé distribuce Linuxu jsou dodávány s předinstalovaným lshw. Pokud ještě není nainstalován, můžete jej nainstalovat, jak je znázorněno níže.

V Arch Linuxu a odvozeninách:

$ sudo pacman -S lshw

Ve Fedoře:

$ sudo dnf install lshw

V RHEL a odvozeninách, jako je CentOS, vědecký Linux:

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

V Debianu, Ubuntu, Linux Mintu:

$ sudo apt-get install lshw

V SUSE/openSUSE:

$ sudo zypper in lshw

Po instalaci lshw spusťte následující příkaz, abyste zjistili, zda je váš systém fyzický nebo virtuální:

$ sudo lshw -class system

Ukázkový výstup:

[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

Doporučené čtení:

  • Jak najít hardwarové specifikace v systému Linux
  • Jak zjistit maximální podporovanou RAM v Linuxu

Metoda 4 – Použití nástroje dmesg

Typ systému zjistíme pomocí dmesg užitečnost. dmesg se používá k prozkoumání nebo ovládání vyrovnávací paměti jádra.

Chcete-li zkontrolovat, zda je váš systém Linux fyzický nebo virtuální, jednoduše spusťte:

$ sudo dmesg | grep "Hypervisor detected"

Pokud je váš systém fyzický, neuvidíte žádný výstup.

Pokud je váš systém virtuální stroj, uvidíte výstup podobný níže.

[ 0.000000] Hypervisor detected: KVM

Metoda 5 – Použití příkazu hostnamectl

Zda je systém virtuální nebo fyzický můžeme zjistit pomocí hostnamectl příkaz. Vyžaduje systemd do práce.

$ hostnamectl status

Nebo,

$ hostnamectl

Ukázkový výstup:

[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

Metoda 6 – Použití systemd-detect-virt

systemd-detect-virt nástroj detekuje virtualizační technologii a dokáže rozlišit plnou virtualizaci stroje od hardwarové nebo kontejnerové virtualizace.

Spuštěním následujícího příkazu zkontrolujte, zda je systém fyzický nebo virtuální:

$ systemd-detect-virt

Ukázkový výstup:

[Physical machine]

none

[Virtual machine on VirtualBox]

oracle

[Virtual machine on KVM/QEMU]

KVM

Metoda 7 – Použití virt-what skriptu

virt-co je malý shell skript vyvinutý ve společnosti Red Hat, aby zjistil, zda běžíme ve virtuálním nebo fyzickém stroji. virt-what je balený pro všechny populární linuxové distribuce, jako je RHEL, Fedora, CentOS, Debian, Ubuntu, Arch Linux (AUR).

V Arch Linuxu jej můžete nainstalovat z AUR pomocí jakýchkoli pomocníků AUR, například Yay .

$ yay -S virt-what

V RHEL, Fedora, CentOS:

$ sudo yum install virt-what

Na Debianu, Ubuntu:

$ sudo apt-get install virt-what

Po instalaci spusťte následující příkaz a zobrazte, zda je váš systém fyzický nebo virtuální:

$ sudo virt-what

Pokud se nic nevytiskne a skript se ukončí s kódem 0 (žádná chyba), pak to znamená, že buď je systém fyzický, nebo je to typ virtuálního počítače, o kterém nevíme nebo ho nemůžeme detekovat.

Pokud je váš systém virtuální, uvidíte výstup jako níže.

virtualbox
kvm

Další podrobnosti naleznete na domovské stránce projektu.

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

Metoda 8 – Použití imvirt skriptu

imvirt je další malý perl skript, který vám pomůže zjistit, zda běžíme na virtuálním počítači.

V Arch Linuxu jej můžete nainstalovat z AUR pomocí Yay pomocný program.

$ yay -S imvirt

V systémech Debian, Ubuntu, Linux Mint:

$ sudo apt-get install imvirt

Po instalaci spusťte následující příkaz a zobrazte, zda je váš systém fyzický nebo virtuální:

$ sudo imvirt

Pokud je váš systém fyzický, výstup bude:

Physical

pokud je systém virtuální, uvidíte:

KVM

Další podrobnosti naleznete na domovské stránce projektu.

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

Související čtení:

  • Jak zkontrolovat, zda je systém Linux 32bitový nebo 64bitový
  • Jak zjistit, zda procesor podporuje technologii virtualizace (VT)

A to je zatím vše. Pokud znáte nějaké další způsoby, jak zjistit, zda je linuxový box fyzický nebo virtuální, dejte nám vědět v sekci komentářů. Příručku podle toho zkontrolujeme a aktualizujeme.


Linux
  1. Jak odstranit virtuální stroje založené na KVM na Redhat Linuxu

  2. Jak zkontrolovat verzi OS a Linuxu

  3. Jak zkontrolovat verzi jádra v Linuxu

  1. Jak zkontrolovat, zda je systém Linux 32bitový nebo 64bitový

  2. Jak zkontrolovat dostupnost systému v Linuxu

  3. Zkontrolujte dostupnost na Ubuntu Linux Server - Jak na to?

  1. Jak zkontrolovat verzi Linuxu

  2. Jak zkontrolovat, zda systém Linux běží na fyzickém systému nebo virtuálním počítači?

  3. Linuxový příkaz, který určí, zda je stroj fyzický nebo virtuální