systemd-detect-virt 中文手册

译者:金步国


版权声明

本文译者是一位开源理念的坚定支持者,所以本文虽然不是软件,但是遵照开源的精神发布。

其他作品

本文译者十分愿意与他人分享劳动成果,如果你对我的其他翻译作品或者技术文章有兴趣,可以在如下位置查看现有的作品集:

联系方式

由于译者水平有限,因此不能保证译文内容准确无误。如果你发现了译文中的错误(哪怕是错别字也好),请来信指出,任何提高译文质量的建议我都将虚心接纳。


手册索引 · 指令索引systemd-241

名称

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

大纲

systemd-detect-virt [OPTIONS...]

描述

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

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

表 1. 可识别的 虚拟化技术 (包括硬件虚拟化与容器)

TypeIDProduct
虚拟机qemuQEMU 软件虚拟机(未使用KVM)
kvmLinux 内核虚拟机(使用除 Oracle Virtualbox 之外的其他虚拟机管理程序)
zvms390 z/VM
vmwareVMware 虚拟机
microsoftHyper-V 虚拟机
oracleOracle VirtualBox 虚拟机
xenXen 虚拟机(仅 domU, 非 dom0)
bochsBochs 模拟器
umlUser-mode Linux
parallelsParallels Desktop, Parallels Server
bhyvebhyve, FreeBSD hypervisor
qnxQNX hypervisor
容器openvzOpenVZ/Virtuozzo
lxcLXC 容器
lxc-libvirt通过 libvirt 实现的容器
systemd-nspawnsystemd 最简容器(详见 systemd-nspawn(1))
dockerDocker 容器
rktrkt 应用容器

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

选项

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

-c, --container

仅检测容器 (共享内核虚拟化)

-v, --vm

仅检测虚拟机(虚拟化硬件)

-r, --chroot

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

--private-users

检测是否运行在用户名字空间内。 在此模式下,没有任何输出,而是通过返回值表示是否运行在用户名字空间内。 详见 user_namespaces(7) 手册。

-q, --quiet

禁止输出虚拟化技术的 简短标识。

--list

输出当前所有已知并可检测的容器与虚拟化环境。

-h, --help

显示简短的帮助信息并退出。

--version

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

退出状态

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

参见

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