我的 bash 脚本中的命令之一将取决于服务器的虚拟化(XEN 或 OpenVZ 或 KVM )。如何检查哪些在 bash 中使用?
问问题
1270 次
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 回答