Linux
確定Linux機器虛擬化技術的簡單方法?
我可以通過命令行訪問可能會或可能不會被虛擬化的 Linux 機器。我想確定它執行在哪種虛擬化技術上(如果有的話)(VMWare、VirtualBox、KVM、OpenVZ、Xen、)。這不是一個充滿敵意的環境:我不是在嘗試與試圖偽裝自己的 VM 對抗,而是在診斷一個我知之甚少的不穩定伺服器。
更準確地說,我是在幫助某人診斷問題,而不是在掌舵。所以我必須傳達諸如“複製粘貼此命令”之類的指令,而不是“在
/proc
某處閒逛”。理想情況下,它將類似於lshw
:一個易於安裝(如果未預安裝)的命令,它可以四處尋找並列印出相關資訊。確定該系統可能使用哪種虛擬化技術的最簡單方法是什麼?如果提案提到可以最終檢測到哪些技術(包括裸硬體)以及可以最終消除哪些技術,我將不勝感激。我對 Linux 最感興趣,但如果它也適用於其他 unice,那就太好了。
dmidecode -s system-product-name
我已經在 Vmware Workstation、VirtualBox、帶有 KVM 的 QEMU、帶有 Ubuntu 作為來賓作業系統的獨立 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
- 微軟虛擬PC
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
在裸機上,這將返回電腦或主機板型號的標識。
/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
參考