SYSTEMD-DETECT-VIRT(1)

NAME
systemd-detect-virt - 检测虚拟化环境

SYNOPSIS

systemd-detect-virt [OPTIONS...]

描述

systemd-detect-virt 用于检测 系统的运行环境是否为虚拟化环境， 以及更进一步检测是哪种虚拟化环境， 比如是哪种虚拟机或哪种容器。systemd-detect-virt 会在检测成功时返回 0 值， 而在检测失败时返回非零值。 默认检测所有虚拟化类型，但是通过 --container 与 --vm 选项， 也可以指定仅检测特定的虚拟化类型。

如果未指定 --quiet 选项， 那么将会显示检测到的虚拟化技术的简短标识。 可以识别的虚拟化技术如下：

Table 1. 可识别的虚拟化技术
Type | ID | Product
虚拟机 | qemu | QEMU 软件虚拟机
 | kvm | Linux 内核虚拟机
 | zvm | s390 z/VM
 | vmware | VMware 虚拟机
 | microsoft | Hyper-V 虚拟机
 | oracle | Oracle VirtualBox 虚拟机
 | xen | Xen 虚拟机(仅 domU, 非 dom0)
 | bochs | Bochs 模拟器
 | uml | User-mode Linux
 | parallels | Parallels Desktop, Parallels Server
容器 | openvz | OpenVZ/Virtuozzo
 | lxc | LXC 容器
 | lxc-libvirt | 通过 libvirt 实现的容器
 | systemd-nspawn | systemd 最简容器(详见 systemd-nspawn(1))
 | docker | Docker 容器
 | rkt | rkt 应用容器

如果使用了多重虚拟化， 那么将只能检测到"最内层"的虚拟化技术。 例如，在虚拟机内的容器中运行时， 将只能检测到容器(除非明确使用了 --vm 选项)。

选项

能够识别的命令行选项如下：

-c, --container
    仅检测容器(共享内核虚拟化)

-v, --vm
    仅检测虚拟机(虚拟化硬件)

-r, --chroot
    检测是否运行在 chroot(2) 环境中。在此模式下，没有任何输出， 而是通过返回值表示是否运行在 chroot() 环境中。

-q, --quiet
    禁止输出虚拟化技术的简短标识。

-h, --help
    显示简短的帮助信息并退出。

--version
    显示简短的版本信息并退出。

退出状态

返回值为 0 表示成功， 非零返回值表示失败代码。

参见

systemd(1), systemd-nspawn(1), chroot(2)