如何检测机器是否虚拟化

如何检测机器是否虚拟化

我有 Linux、AIX、SunOs 和 HP-UX 机器,我想检测机器是否是虚拟机。到目前为止,我发现本文它帮助我在 Linux 上获取了以下信息:

dmesg | grep -i virtual    //On Linux Machines

但我还需要命令艾克斯惠普&太阳光。有什么帮助吗?

答案1

尝试http://people.redhat.com/~rjones/virt-what/。如果我错了请纠正我,但我认为 Red Hat 在他们的 Satellite 中使用它来检测和分组虚拟化系统。

答案2

“虚拟”的定义太宽泛了。如果我们假设对于 AIX,您指的是任何作为 LPAR(或微分区,或 IBM 选择的任何其他术语)的 AIX 映像,那么您可以使用uname -L,例如,

nonlpar# umame -L
-1 NULL

lparhost# uname -L
5 lparhost

如果您指的是 WPAR,那么您可以使用uname -W,结果 0 表示您不在 WPAR 中,任何大于 0 的结果都是 WPAR。

如果您的意思是,AIX 实例是否依赖于 VIO 服务器,那么除了查看设备并确定它们是否通过 VIO 服务器呈现之外,没有可靠的机制来了解这一点。

值得记住的是,对于运行 AIX 的 pSeries 硬件来说,如今几乎所有东西都是 LPAR,因此本质上是虚拟的,即使它是唯一使用该硬件的操作系统实例。

答案3

在 HP-UX 中,有不同级别的虚拟化和不同的命令来了解您的系统是否已虚拟化。

  1. Integrity 虚拟机客户机

    如果您在 IVM Guest 中执行以下命令,您将获得:

     # hpvminfo 
     hpvminfo: Running inside an HPVM guest.
    

    如果在没有“IVM Guest”的情况下执行以下命令,您将获得:

     # hpvminfo 
     hpvminfo: Running inside an HPVM host.
    

    或 # hpvminfo sh: hpvminfo:未找到。

  2. HP 虚拟分区

    如果在 vpar 中执行以下命令,您将获得:

     # hpvminfo 
     hpvminfo: Running inside an HPVM guest.
     # vparstatus -w
     The current virtual partition is <VPAR NAME>.
    

    如果在 NO vpar 中执行以下命令,您将获得:

     # vparstatus 
     sh: vparstatus:  not found.
    

答案4

对于 x86 虚拟机,只需运行一个调用检测 x86 虚拟机的官方机制。我会提供一些例子,但我什么都想不起来。我使用自己的工具。 托马斯·里斯克imvirt根据其文档,它很有前景,但我还没有使用过它,也没有看过源代码。

这是否也适用于您的 SunOS 机器取决于它是 x86 Solaris 还是确实SunOS。☺ 检测虚拟机的存在涉及特定于处理器指令集架构的内容,而不是操作系统的内容。因此,“我有 AIX 和 HP/UX 机器。”不如“我有 PowerPC 和 Itanium 机器。”有用。

相关内容