2013-01-24 234 views
1

有没有办法找出我登录的(linux)系统是主机还是虚拟机?我可以通过shell或VM的其他实用程序查看任何症状吗?虚拟机或主机?

+1

通过一个足够好的虚拟机的定义应该是没有办法找出.... –

+0

如果你真的依靠一个发现的方法,你可能会发现虚拟机将发展到模糊你的方式来检测它们... –

回答

1

如果脚本可用,那么会有一个数字,用于检测虚拟化的存在。 例如virt-what,但我想你的问题没有通用的解决方案。

1

您可以检查驱动程序已经加载完整的虚拟化环境,例如VMware。使用lspci,lsmod等...或者你可以使用dmesg来获得这种信息。

+1

谢谢。 dmesg | grep“Linux版本”在一个案例中为我工作。 (内核信息)在另一种情况下不适用于我。我想没有办法。 – Chinmay

0

你可以使用Perl模块Sys系统::检测::虚拟化here

use Sys::Detect::Virtualization; 

my $detector = eval { Sys::Detect::Virtualization->new() }; 
if([email protected]) { 
    print "Detector may not be supported for your platform. Error was: [email protected]\n"; 
} 

my @found = $detector->detect(); 
if(@found) { 
    print "Possible virtualized system. May be running under:\n"; 
    print "\t$_\n" for @found; 
} 
+0

请做更多解释。见[回答]? – mtk