【发布时间】:2014-03-12 14:58:25
【问题描述】:
我的 bash 脚本中的一个命令将取决于服务器的虚拟化(XEN 或 OpenVZ 或 KVM )。如何检查 bash 中使用了哪些?
【问题讨论】:
标签: bash virtualization kvm xen openvz
我的 bash 脚本中的一个命令将取决于服务器的虚拟化(XEN 或 OpenVZ 或 KVM )。如何检查 bash 中使用了哪些?
【问题讨论】:
标签: bash virtualization kvm xen openvz
有一个非常有用的脚本imvirt 可以处理 Xen、OpenVZ、VMware、VirtualBox、KVM 和许多其他的。它在 Debian 中以软件包形式提供,或者来自 imvirt web site。
$ imvirt
Xen PV 4.1
【讨论】:
yum install imvirt,不幸的是,imvirt 命令在我的系统上显示错误。似乎无法检测到我在 KVM 上
我发现了一个能够检测虚拟化的小型 shell 脚本,它可以处理 Xen、OpenVZ、KVM、Parallels、Vmware 等等
virt-what
使用 yum 安装非常简单
这是我系统上的输出
$ virt-what
kvm
【讨论】:
如果要检测 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 端口也将可用。否则,代码对你来说很简单……
【讨论】:
OpenVz 下。对吗?