本文译者是一位开源理念的坚定支持者,所以本文虽然不是软件,但是遵照开源的精神发布。
本文译者十分愿意与他人分享劳动成果,如果你对我的其他翻译作品或者技术文章有兴趣,可以在如下位置查看现有的作品集:
由于译者水平有限,因此不能保证译文内容准确无误。如果你发现了译文中的错误(哪怕是错别字也好),请来信指出,任何提高译文质量的建议我都将虚心接纳。
systemd-detect-virt — 检测虚拟化环境
systemd-detect-virt
[OPTIONS...]
systemd-detect-virt 用于检测
系统的运行环境是否为虚拟化环境,
以及更进一步检测是哪种虚拟化环境,
比如是哪种虚拟机或哪种容器。systemd-detect-virt
会在检测成功时返回 0 值,
而在检测失败时返回非零值。
默认检测所有虚拟化类型,但是通过
--container
与 --vm
选项,
也可以指定仅检测特定的虚拟化类型。
如果未指定 --quiet
选项,
那么将会显示检测到的虚拟化技术的简短标识。
可以识别的虚拟化技术如下:
表 1. 可识别的 虚拟化技术 (包括硬件虚拟化与容器)
Type | ID | Product |
---|---|---|
虚拟机 | qemu | QEMU 软件虚拟机(未使用KVM) |
kvm | Linux 内核虚拟机(使用除 Oracle Virtualbox 之外的其他虚拟机管理程序) | |
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 | |
bhyve | bhyve, FreeBSD hypervisor | |
qnx | QNX hypervisor | |
容器 | 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()
环境中。
--private-users
¶检测是否运行在用户名字空间内。 在此模式下,没有任何输出,而是通过返回值表示是否运行在用户名字空间内。 详见 user_namespaces(7) 手册。
-q
, --quiet
¶禁止输出虚拟化技术的 简短标识。
--list
¶输出当前所有已知并可检测的容器与虚拟化环境。
-h
, --help
¶--version
¶