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.