4

我的 bash 脚本中的命令之一将取决于服务器的虚拟化(XEN 或 OpenVZ 或 KVM )。如何检查哪些在 bash 中使用?

4

3 回答 3

3

有一个非常有用的脚本称为imvirt处理 Xen、OpenVZ、VMware、VirtualBox、KVM 和许多其他脚本。它可以作为 Debian 中的一个包或从imvirt 网站获得

$ imvirt
Xen PV 4.1
于 2014-03-12T15:31:21.710 回答
3

我发现了一个能够检测虚拟化的小型 shell 脚本,它可以处理 Xen、OpenVZ、KVM、Parallels、Vmware 等等

virt-what

使用 yum 安装非常简单

这是我系统上的输出

$ virt-what
kvm 
于 2014-03-13T04:41:28.870 回答
0

如果要检测 xen 的主机 (dom0),请检查

[ "$(cat /proc/xen/capabilities)" == "control_d" ]

如果要在VM中检测,
需要在VM中执行cpuid指令,original_eax=1。
如果生成的 ecx 设置了 MSB ((ecx & 0x80000000) != 0),那么您在 VM 下。
这是假设您的管理程序支持viridian interface。Xen 有。
cpuid软件包可轻松用于许多 Linux 发行版。我敢肯定 Windows 端口也将可用。否则,代码对您来说非常简单......

于 2014-03-12T15:08:17.757 回答