【发布时间】:2013-01-24 08:17:42
【问题描述】:
有没有办法确定我正在登录的(linux)系统是主机还是虚拟机?我可以通过 shell 或任何其他实用程序(VM)查看任何症状吗?
【问题讨论】:
-
根据足够好的虚拟机的定义,应该没有办法找出......
-
如果你真的依赖一种方法来发现,你可能会发现虚拟机将朝着模糊你检测它们的方式发展......
标签: linux virtual-machine
有没有办法确定我正在登录的(linux)系统是主机还是虚拟机?我可以通过 shell 或任何其他实用程序(VM)查看任何症状吗?
【问题讨论】:
标签: linux virtual-machine
如果脚本可用,则有一些脚本会尝试检测虚拟化的存在。 例如virt-what,但我想你的问题没有通用的解决方案。
【讨论】:
您可以检查已加载的驱动程序,以防 VMware 等完整的虚拟化环境。使用 lspci,lsmod, ... 等,或者您可以使用 dmesg 来获取此类信息。
【讨论】:
你可以使用 perl 模块 Sys::Detect::Virtualization here
use Sys::Detect::Virtualization;
my $detector = eval { Sys::Detect::Virtualization->new() };
if( $@ ) {
print "Detector may not be supported for your platform. Error was: $@\n";
}
my @found = $detector->detect();
if( @found ) {
print "Possible virtualized system. May be running under:\n";
print "\t$_\n" for @found;
}
【讨论】: