가상화되거나 가상화되지 않을 수 있는 Linux 시스템에 대한 명령줄 액세스 권한이 있습니다. 어떤 가상화 기술(있는 경우)(VMWare, VirtualBox, KVM, OpenVZ, Xen)에서 실행되고 있는지 확인하고 싶습니다. 이것은 적대적인 환경이 아닙니다. 저는 자신을 위장하려는 가상 머신과 싸우려는 것이 아니라 제가 거의 알지 못하는 불안정한 서버를 진단하고 있습니다.
더 정확하게 말하면, 나는 배를 조종하는 것이 아니라 누군가가 문제를 진단하도록 돕고 있습니다. 그래서 " /proc
어디서 놀아" 대신 "이 명령을 복사하여 붙여넣기"와 같은 지시를 전달해야 합니다 . 이상적으로는 lshw
관련 정보를 검색하고 인쇄할 수 있는 설치하기 쉬운(사전 설치되지 않은 경우) 명령과 같습니다 .
이 시스템이 사용할 수 있는 가상화 기술을 결정하는 가장 쉬운 방법은 무엇입니까? 어떤 기술(베어 하드웨어 포함)이 결국 감지되고 어떤 기술이 결국 제거될 수 있는지 제안서에 언급해 주시면 감사하겠습니다. 저는 리눅스에 가장 관심이 많지만 다른 유니스에서도 작동하면 좋을 것 같습니다.
답변1
dmidecode -s system-product-name
Vmware Workstation, VirtualBox, KVM이 있는 QEMU, Ubuntu를 게스트 OS로 사용하는 독립형 QEMU에서 테스트했습니다. 다른 사람들은 자신에게 익숙한 다른 플랫폼을 추가했습니다.
가상화 기술
VMware 워크스테이션
root@router:~# dmidecode -s system-product-name VMware Virtual Platform
가상 상자
root@router:~# dmidecode -s system-product-name VirtualBox
KVM을 갖춘 Qemu
root@router:~# dmidecode -s system-product-name KVM
Qemu(에뮬레이션)
root@router:~# dmidecode -s system-product-name Bochs
마이크로소프트 가상 컴퓨터
root@router:~# dmidecode | egrep -i 'manufacturer|product' Manufacturer: Microsoft Corporation Product Name: Virtual Machine
비투오초
root@router:~# dmidecode /dev/mem: Permission denied
젠
root@router:~# dmidecode | grep -i domU Product Name: HVM domU
베어메탈에서는 컴퓨터 또는 마더보드 모델의 ID를 반환합니다.
/dev/disk/by-id
실행할 권한이 없으면 dmidecode
다음을 사용할 수 있습니다.
가상화 기술: QEMU
ls -1 /dev/disk/by-id/
산출
[root@host-7-129 ~]# 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
인용하다
답변2
컨테이너가 실행 중인 경우 systemd
:
$ systemd-detect-virt
lxc
KVM을 예로 들면 다음이 반환됩니다.
kvm
가상화되지 않은 호스트에서:
none
또한보십시오:
답변3
이상적인 방법
창사
이 명령은 다양한 VM 기술 게스트에서 다음 출력을 생성합니다.
$ sudo lshw -class system
산출
키보드 가상 머신
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
가상 머신 소프트웨어
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
스크립팅
open-vm-tools
Ubuntu/Debian을 사용하는 경우 이 패키지를 설치할 수 있습니다. 그것은 제공한다vmware-checkvm
. 단지 숫자를 반환합니다. 는 0
가상 머신을 의미하고 는 1
물리적 시스템을 의미합니다.
이상적인 접근 방식이 아닙니다.
KVM인 경우 /proc/scsi/scsi
및 ethtool
옵션이 다음과 같이 나타납니다.
소형 컴퓨터 시스템 인터페이스
$ 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 -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일 가능성이 가장 높다는 것을 알려줍니다.
정보
로그를 grep
살펴보려면 다음 명령을 사용하세요 .dmesg
$ sudo dmesg | grep -i virtual
가상 머신 소프트웨어
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
최신 커널에서는 반가상화 하에서 실행되고 있다는 것을 알고 있습니다.
마이크로소프트 가상 컴퓨터
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
인용하다
답변4
hostnamectl
당신의 친구입니까?systemd
).
몇 가지 예:
가상화가 없는 노트북
$ hostnamectl status
Static hostname: earth.gangs.net
Icon name: computer-laptop
Chassis: laptop
Machine ID: 18a0752e1ccbeef09da51ad17fab1f1b
Boot ID: beefdc99969e4a4a8525ff842b383c62
Operating System: Ubuntu 16.04.2 LTS
Kernel: Linux 4.4.0-66-generic
Architecture: x86-64
젠
$ hostnamectl status
Static hostname: pluto.gangs.net
Icon name: computer-vm
Chassis: vm
Machine ID: beef39aebbf8ba220ed0438b54497609
Boot ID: beefc71e97ed48dbb436a470fe1920e1
Virtualization: xen
Operating System: Ubuntu 16.04.2 LTS
Kernel: Linux 3.13.0-37-generic
Architecture: x86-64
오픈VZ
$ hostnamectl status
Static hostname: mars.gangs.net
Icon name: computer-container
Chassis: container
Machine ID: 55296cb0566a4aaca10b8e3a4b28beef
Boot ID: 1bb259b0eb064d9eb8a22d112211beef
Virtualization: openvz
Operating System: CentOS Linux 7 (Core)
CPE OS Name: cpe:/o:centos:centos:7
Kernel: Linux 2.6.32-042stab120.16
Architecture: x86-64
키보드 가상 머신
$ hostnamectl status
Static hostname: mercury.gangs.net
Icon name: computer-vm
Chassis: vm
Machine ID: beeffefc50ae499881b024c25895ec86
Boot ID: beef9c7662a240b3b3b04cef3d1518f0
Virtualization: kvm
Operating System: CentOS Linux 7 (Core)
CPE OS Name: cpe:/o:centos:centos:7
Kernel: Linux 3.10.0-514.10.2.el7.x86_64
Architecture: x86-64